我有一个服务,我用Python编写,允许用户安排任务以不同的间隔发生。任务的例子是:
任务应该彼此独立运行。我还想确保Task A
在之前的尝试完成之前无法再次运行。请记住,任务的数量是动态的,因此在它们运行的时间间隔内也是如此。
我看过RabbitMQ,但我很难决定它是否能够做到这一点。
答案 0 :(得分:1)
我最近一直在使用芹菜去做你想要达到的目标。使用celery,您可以创建任务,这些任务本质上是您分配给任务队列的函数。您还可以定期运行芹菜任务,无论是每x秒还是更多crontab样式的方法。
查看芹菜文档中的定期任务,看它是否适合您的尝试。芹菜使用rabbitmq或redis(主要)。每个任务都在与主程序分开的线程中运行。
答案 1 :(得分:1)
您应该设置几个任务队列,每个任务类型一个。然后,当您要执行新任务时,只需将其放入队列即可。这可以确保它们按照您选择的顺序,有序和一致的间隔发生。
考虑Amazon Simple Queue Service (SQS)或Amazon Simple Workflow Service,而不是维护自己的RabbitMQ / Celery个实例。
的信息