Я запускаю python's apscheduler
и периодически хочу сделать некоторую работу POST-ing для некоторых http-ресурсов, которые будут включать использование tornado в качестве запланированного задания. Каждая работа будет выполнять несколько POST. Когда каждый запрос HTTP отвечает, обратный вызов затем вызывается (я думаю, что Tornado использует future
, чтобы выполнить это).Как использовать торнадо с APScheduler?
Я занимаюсь поточной безопасностью здесь, так как Apscheduler
выполняет задания в различных потоках. Я не смог найти хорошо объясненный пример того, как торнадо лучше всего использовать в нескольких потоках в этом контексте.
Как я могу наилучшим образом использовать apscheduler
с tornado
таким образом?
Конкретные проблемы:
Какой торнадо ioloop использовать? Документы говорят, что
AsyncHTTPClient
«работает как волшебство». Ну, волшебство пугает меня. Нужно ли использоватьAsyncHTTPClient
из текущего потока или я могу использовать главный (его можно указать)?Существуют ли проблемы с защитой от потоков с моим обратным вызовом, в отношении которого я использую ioloop?
Непонятно, что происходит, когда поток завершается, но есть еще ожидающий обратный вызов/будущее, которое необходимо вызвать. Здесь есть проблемы?
Поскольку apscheduler запускается как потоки в процессе, а python имеет GIL, то это почти то же самое, что и один IOLoop из основного потока - в отличие от нескольких циклов из разных потоков (относительно производительности)?
Привет, я помог вам в любом случае? Не могли бы вы прокомментировать, если вам нужна дополнительная информация об этом? – vaidik