我正在构建一个测试实用程序,它定期运行一系列测试,一些计划每天运行,一些每小时运行一次,一些运行一周,等等。我试图在Celery Beat上构建此功能,一个RabbitMQ经纪人。 但是,每个这样的时间段运行的测试列表都可以更改(可以添加,编辑或删除测试)。我需要在这个动态的测试列表中安排测试。
这是我到目前为止所做的:
.queue()
我已经尝试将要运行的测试列表 - (a)作为参数传递给args' CELERYBEAT_SCHEDULE配置,(b)作为函数调用将测试列表返回到CELERYBEAT_SCHEDULE配置的args参数,以及(c)通过调用test_scheduler()函数中的test_list()函数。这三种技术似乎都无法处理可动态更新的列表(例如,如果我将另一个测试 - t8 - 添加到测试列表中,理想情况下,在test_schedule()函数的下一次计划运行中,我希望" RUNNING TEST t8"打印在控制台上,无需重启Celery Beat。)
请注意,调度程序无法停止/重新启动,必须始终运行。
感谢任何指导,提前感谢!