apscheduler JobSubmissionEvent происходит после JobExecutionEvent - PullRequest
0 голосов
/ 14 июня 2019

Я использую apscheduler и обнаружил, что EVENT_JOB_SUBMITTED сообщается после EVENT_JOB_EXECUTED.Я использую BackgroundScheduler и хранилище заданий в памяти.Пример кода приведен ниже:

def jobby(): # simple job
    print("the job is running! ", datetime.now()) 


# event listener which is attached
class ECPJobEventManager(object):
    def __call__(self, event):
        print("EVENT:", event, datetime.now())
        if isinstance(event, JobEvent):
            print("    JOB ID:", event.job_id)

Вот вывод после добавления задания задания с помощью триггера «Дата» через несколько минут в будущем:

EVENT: <JobEvent (code=512)> 2019-06-13 12:13:14.511437
    JOB ID: job123
the job is running!  2019-06-13 12:14:07.894373
EVENT: <JobExecutionEvent (code=4096)> 2019-06-13 12:14:08.182397
    JOB ID: job123
EVENT: <JobEvent (code=1024)> 2019-06-13 12:14:09.411494
    JOB ID: job123
EVENT: <JobSubmissionEvent (code=32768)> 2019-06-13 12:14:10.326586
    JOB ID: job123

Подобное поведение возникает при работе с интерваломи Cron запускает.Использование немедленного триггера, по-видимому, генерирует JobSubmissionEvent до JobExecutionEvent (хотя я проверял его всего несколько раз, и это может не доказать, что он работает таким образом каждый раз).

Итак, это ожидаемое поведение?Это проблема синхронизации с потоком выполнения?

...