All workers run job when using sqlite3 data store
Author: legoutCreated Aug 29, 2024Updated Nov 30, 2025
Labelsbug
Things to check first
I have checked that my issue does not already have a solution in the FAQ
I have searched the existing issues and didn't find my bug already reported there
I have checked that my bug is still present in the latest release
Version
v4.0.0a5
What happened?
When using sqlite3 as the data store and redis as the event broker and having several workers running, jobs are executed by all workers.
How can we reproduce the bug?
job.py
def job(name, *args, **kwargs):
print(name, args, kwargs)scheduler.py
from apscheduler import Scheduler
from apscheduler.datastores.sqlalchemy import SQLAlchemyDataStore
from apscheduler.eventbrokers.redis import RedisEventBroker
from job import job
def main():
data_store = SQLAlchemyDataStore(
engine_or_url="sqlite+aiosqlite:////tmp/test.db"
)
event_broker = RedisEventBroker("redis://localhost:6379")
with Scheduler(data_store, event_broker) as sched:
sched.add_job(job, args=("job1", 1, 2, 3), kwargs=dict(a="A"))
if __name__ == "__main__":
main()worker.py
from apscheduler import Scheduler
from apscheduler.datastores.sqlalchemy import SQLAlchemyDataStore
from apscheduler.eventbrokers.redis import RedisEventBroker
def main():
data_store = SQLAlchemyDataStore(
engine_or_url="sqlite+aiosqlite:////tmp/test.db"
)
event_broker = RedisEventBroker("redis://localhost:6379")
with Scheduler(data_store, event_broker) as sched:
sched.run_until_stopped()
if __name__ == "__main__":
main()Here is a screenshot of running two workers and scheduling the job four times.
Source: agronholm/apscheduler