Dramatiq 多次执行一个任务

问题描述

我目前正在 >>> df.groupby(["Election Year","Region"]) \ .apply(lambda x: x.loc[x["Votes"].idxmax(),"Party"]) \ .unstack().mode(axis="columns") \ .rename(columns={0: "Party"}).reset_index() Election Year Party 0 2000 B 1 2005 A 上运行一个 8 核实例(docker_serivce、dramaticiq_service、rabbitmq_service、postgres_service 等): docker-compose django_apscheduler==0.5.2 dramatiq [rabbitmq,watch]==1.8.1

错误在于许多进程正在执行相同的任务。任务只创建一次(apscheduler RabbitMQ (rabbitmq: 3.8-management-alpine image)),但是有几个进程试图执行它,不同进程之间有些线程是相同的。

这是一个例子。作业在队列中一次,但是当它被执行时,许多进程都会接受它。 139698903181056是线程,21是进程

BackgroundScheduler

解决方法

问题与Django-apscheduler有关。

dramatiq 容器(8 个 worker)启动时调度器暂停,但是在我的代码的一部分中,有一段代码可以恢复调度器,因此所有 8 个 worker 同时开始触发任务,导致即使作业只创建一次,也会重复执行任务。

道德:始终检查您的调度程序是否只启动一次。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...