agronholm / agronholm/apscheduler

Possible for EVENT_JOB_EXECUTED to fire before EVENT_JOB_SUBMITTED

Đang mở
#445 7 bình luận 0 reaction 0 người được giao Xem trên GitHub
bug
Ngôn ngữ chính
Python
Star
7.6k
Fork
783
Merge trung bình
4 ngày 8 giờ
Pull request đã merge (30 ngày)
5

Mô tả

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).

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.