Step functions can wait till a certain time or until an amount of time elapses then call a lambda
https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-wait-state.html
will check out AWS step functions, thanks.
@wei AWS Lambda can be triggered by CloudWatch events (could easily add extra logic inside the lambda if needed).
We used Lambda via CloudWatch for any time based triggering at my last work.
@lloydshark thanks, I'm concerned about the 100 rule limit on cloudwatch events though, seems better suited for recurring events. for my use case I'd need to schedule thousands of one-time events
What is the timespan? I mean, how long time there’s between receiving the event and handling it?
(in case it’s known)
And how precise does the triggering need to be?
If it really suits you can ask for an increase in the 100 rule limit.
But like @valtteri says - there might be other options depending on what you actually need to do.
could be weeks or months
I've applied so we'll see what they say, not sure if I'll be able to get an order of magnitude more though
Yeah I don't know what the hard limit is...
In that case probably the simplest solution is to use Step Functions as hiredman mentioned. If the timespan was less than 30 days you could’ve abused SQS as well. DynamoDB TTL feature sounds like an interesting alternative though! Is the idea that you use delete events in the DDB Stream as triggers?
step functions have some limits too https://docs.aws.amazon.com/step-functions/latest/dg/limits.html
while googling around, ran into aws simple workflow, which has eerily ~similar limits https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dg-limits.html
don't know how the cost of quartz + ec2 compare to these, probably depends on the number of tasks to be scheduled