python - apscheduler:返回了多个 DjangoJobExecution - 它返回了 2

标签 python django apscheduler

在我的项目调度程序中,在执行作业中返回此错误,请帮助我

这是我在cosole中的错误,然后执行程序

Error notifying listener

Traceback (most recent call last):
  File "C:\Users\angel\project\venv\lib\site-packages\apscheduler\schedulers\base.py", line 836, in _dispatch_event
    cb(event)
  File "C:\Users\angel\project\venv\lib\site-packages\django_apscheduler\jobstores.py", line 53, in handle_submission_event
    DjangoJobExecution.SENT,
  File "C:\Users\angel\project\venv\lib\site-packages\django_apscheduler\models.py", line 157, in atomic_update_or_create
    job_id=job_id, run_time=run_time
  File "C:\Users\angel\project\venv\lib\site-packages\django\db\models\query.py", line 412, in get
    (self.model._meta.object_name, num)
django_apscheduler.models.DjangoJobExecution.MultipleObjectsReturned: get() returned more than one DjangoJobExecution -- it returned 2!

这是我的代码

class Command(BaseCommand):
    help = "Runs apscheduler."
    scheduler = BackgroundScheduler(timezone=settings.TIME_ZONE, daemon=True)
    scheduler.add_jobstore(DjangoJobStore(), "default")

    def handle(self, *args, **options):
        self.scheduler.add_job(
            delete_old_job_executions,
            'interval', seconds=5,
            id="delete_old_job_executions",
            max_instances=1,
            replace_existing=True
        )

        try:
            logger.info("Starting scheduler...")
            self.scheduler.start()
        except KeyboardInterrupt:
            logger.info("Stopping scheduler...")
            self.scheduler.shutdown()
            logger.info("Scheduler shut down successfully!")

最佳答案

不确定您是否仍然遇到此问题。我有同样的错误并发现了你的问题。结果发现这种情况只发生在开发环境中。

因为python3 manage.py runserver默认启动两个进程,代码 似乎注册了两个作业记录并在下次运行时找到两个条目。

使用--noreload选项,它只启动一个调度程序线程并且运行良好。顾名思义,它不会重新加载您自动所做的更改。

python3 manage.py runserver --noreload

关于python - apscheduler:返回了多个 DjangoJobExecution - 它返回了 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66521883/

相关文章:

python - 不在实时服务器上托管编译器的原因是什么?

python - 从 Scipy 调用统计函数

django - 我正面临启动 runserver django?

python - 报告用户 Django 错误报告

python - 带混合小数的列

View 中的Django Forms自定义错误消息

python-3.x - 获取 BackgroundScheduler 作业的事件实例数

python - APScheduler 如何立即触发作业

apscheduler - 如何检测 APScheduler 正在运行的作业?

python - 将 <type 'google.protobuf.pyext._message.RepeatedScalarContainer' > 转换为列表