如何在多租户应用中安排后台作业

时间:2019-06-12 14:34:51

标签: python django celery background-process

我有一个多租户Django应用程序应用程序,该应用程序允许租户安排该应用程序何时发送发票,发送提醒,生成报告等。我正在使用Celery运行后台作业,但可以根据需要切换到其他软件包。

遇到两个挑战。设置时间表的最佳方法是哪种,另一种方法是如何照顾时区。

计划

我应该有一个数据库表来存储作业的详细信息(作业类型,运行时间,作业参数等),然后有一个后台作业,每隔1分钟查询此表一次,如果找到该作业应已经在过去1分钟内运行,那么它会触发适当的后台作业吗?

我觉得那效率低下吗?有更好的方法吗?

目前有几百个租户,但我预计将有约15,000个租户,所以我的想法是该表可能会很大并且会拖慢查询时间?

时区

对于时区,如果一个租户被注册为格林尼治标准时间0,另一个是格林尼治标准时间+6,那么在安排作业时要如何做,以免客户在中午收到发票希望他们根据时区在午夜发送?

我知道Celery具有timezone设置,但是那是应用程序的时区,而不是每个租户的时间。

0 个答案:

没有答案