I'm working on a Laravel project where I need to dispatch jobs using the later method and delay execution for periods extending beyond two weeks. I appreciate that using the SQS queue driver with Laravel provides excellent capabilities for processing jobs as events, but I've encountered a limitation with SQS that restricts job delay to 15 minutes.
I considered implementing a custom queue driver using DynamoDB, leveraging its TTL feature and subscribing to streams. However, there's no guarantee that the item in DynamoDB will be deleted precisely when the TTL expires, making it not precise enough for my use case.
Another approach I've considered is utilizing AWS Step Functions as a backend for the queue. I'd create a step function execution for each dispatched job, configuring it to delay for the desired amount of time before calling back to the Laravel app for actual job processing. Though this seemed promising, there are limitations on the number of step function executions, which may be a barrier.
In summary, I'm looking for a serverless approach to process a queue in a bref/Laravel application, with the capability to delay jobs for more than 15 minutes, and also to implement a backoff strategy that spans hours and days.
Has anyone faced a similar challenge or have any insights on a viable serverless solution that fits these requirements? Any suggestions or references would be greatly appreciated.
Hello,
I'm working on a Laravel project where I need to dispatch jobs using the later method and delay execution for periods extending beyond two weeks. I appreciate that using the SQS queue driver with Laravel provides excellent capabilities for processing jobs as events, but I've encountered a limitation with SQS that restricts job delay to 15 minutes.
I considered implementing a custom queue driver using DynamoDB, leveraging its TTL feature and subscribing to streams. However, there's no guarantee that the item in DynamoDB will be deleted precisely when the TTL expires, making it not precise enough for my use case.
Another approach I've considered is utilizing AWS Step Functions as a backend for the queue. I'd create a step function execution for each dispatched job, configuring it to delay for the desired amount of time before calling back to the Laravel app for actual job processing. Though this seemed promising, there are limitations on the number of step function executions, which may be a barrier.
In summary, I'm looking for a serverless approach to process a queue in a bref/Laravel application, with the capability to delay jobs for more than 15 minutes, and also to implement a backoff strategy that spans hours and days.
Has anyone faced a similar challenge or have any insights on a viable serverless solution that fits these requirements? Any suggestions or references would be greatly appreciated.
Thank you!