agronholm / agronholm/apscheduler
Possible for EVENT_JOB_EXECUTED to fire before EVENT_JOB_SUBMITTED
- Vorherrschende Sprache
- Python
- Sterne
- 7.6k
- Forks
- 783
- Ø Merge
- 4 T. 8 Std.
- Gemergte PRs (30 T.)
- 5
Beschreibung
Seems to affect Cron trigger occasionally. The ordering of job events is not guaranteed.
## Expected Behavior
The SUBMITTED event for a job should always fire before its corresponding EXECUTED event.
## Current Behavior
A job's EXECUTED event can fire before the SUBMITTED event leading to unexpected behaviour.
## Steps to Reproduce
https://repl.it/repls/CultivatedOrneryVideogames
```python3
from apscheduler.events import (
EVENT_JOB_EXECUTED,
EVENT_JOB_SUBMITTED,
)
from apscheduler.schedulers.blocking import BlockingScheduler
from time import sleep
import datetime as dt
def my_job():
print(f"my job: {dt.datetime.now()}")
return
def executed_listener(event):
print(f"job executed: {dt.datetime.now()}")
def submitted_listener(event):
print(f"job submitted: {dt.datetime.now()}")
if __name__ == "__main__":
print("starting")
scheduler = BlockingScheduler()
scheduler.add_job(
func=my_job,
id="my_job",
trigger="cron",
second="*/10"
)
scheduler.add_listener(executed_listener, EVENT_JOB_EXECUTED)
scheduler.add_listener(submitted_listener, EVENT_JOB_SUBMITTED)
scheduler.start()
while True:
sleep(60)
```
## Context (Environment)
Attempting to audit job run's to a SQL database means sometimes it is audited incorrectly. (e.g. Doing Insert row on SUBMITTED, update row on EXECUTED would lead to missed events as the row does not exist when the EXECUTED callback fires).
Beitragsleitfaden
Bewertung
Dieses Issue wurde noch nicht bewertet.