-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rerun
feeder should be able to re-run payloads with a terminal state
#199
Comments
I don't like the option to add the Is there a case where a user could ask to rerun a batch of jobs, some of which are already in Completed state. Let's say some of those Completed have replace: True, and others have it as False. Would this lead to some of these getting run again and others not? This is not deterministic as the user wouldn't know what the behavior would be on any individual payload. Having replace in |
Actually, looks like the StateDB.process already takes a So in the case of a URL payload, you'd add replace here:
So then the process Lambda would set the replace keyword of |
Yes. I'd propose changing Popping That said, a likely better solution here is to compose the payload into
I'd hazard to say while the latter might be a more inconvenient refactor, it would probably be the best long-term solution, and would eliminate some weirdness we already have, e.g., |
Payloads in the
COMPLETED
andINVALID
states cannot be re-run by the current implementation of thererun
feeder if they did not already have the"replace": true
key in their process definition, as it has no facility for setting that key for the re-run payload. This is because it currently just resolves the payload url and sends that along to process to resolve from S3.Two options for fixing this oversight:
rerun
, apply thereplace
key, then send the message toprocess
process
to use areplace
key in the url payload to set that on the resolved payloadThe former requires more logic in
rerun
that effectively duplicates operations already supported inprocess
, and for large payloads would require pulling them down, modifying them, pushing them back up to S3, then pulling them down again inprocess
.The latter adds additional logic to process to understand a sort of ad hoc and perhaps not well-considered interface for replacements, and seems a slippery slope to having
process
support for modifying payloads in other ways. We just pulled such features out ofprocess
to keep its logic simple.The text was updated successfully, but these errors were encountered: