【问题标题】:Is there a dynamic scheduling system for better implementation of a subscription based payment system?是否有动态调度系统可以更好地实施基于订阅的支付系统?
【发布时间】:2019-11-12 04:54:01
【问题描述】:

我在 Django 中使用 python 从头开始​​制作订阅支付系统。我将 celery-beat 用于 RabbitMQ 作为队列代理的计划任务。 django_celery_beat 使用 DatabaseScheduler 导致问题。

  1. 将简单任务分派给代理需要很长时间。我用它来使用户过期。对于一些过期任务,大约需要 60 秒 - 150 秒。但通常它需要 100 毫秒到 500 毫秒。

  2. 另一个问题是,当我重新安排一些任务时,当它被写入数据库时​​,它由于某种奇怪的原因阻塞了调度程序并且错过了多个任务正因为如此。

我一直在研究 Apache Airflow,因为它是作为行业标准调度解决方案销售的。

但我不认为,它适用于我的小项目。

如果您曾经使用过订阅支付系统,您能告诉我如何继续使用它吗?

【问题讨论】:

    标签: python django scheduling subscription celerybeat


    【解决方案1】:

    我为一个类似的项目实施了一个漫长的解决方案。

    1. 首先我将计划作为模型保存在数据库中
    2. 接下来我有一个 cron 作业来获取当天需要运行的条目
    3. 然后根据计划模型中设置的时间设置 ETA,将这些作业安排为正常的 Celery 作业。

    在我的例子中,Celery 只是运行了来自 Redis 的消息。如果没有得到直接的答案,请尝试一下。

    【讨论】:

      猜你喜欢
      • 2023-01-18
      • 2011-03-04
      • 2011-05-08
      • 1970-01-01
      • 2011-05-30
      • 2016-10-06
      • 2011-10-04
      • 2010-12-07
      • 1970-01-01
      相关资源
      最近更新 更多