Это раздел кода, который я пытаюсь запустить, все работает, пока я не нажму пункт меню «Пуск». Затем программа зависает. Если я удалю часть планировщика, он не зависнет. Может ли кто-нибудь помочь мне, что я делаю неправильно здесь. Впервые я использую Tkinter для создания графического интерфейса.
def scan():
alerts.delete(1.0, END)
alerts.insert(END, "Bot has started with these coins:\n{}".format(symbols))
sched = BlockingScheduler({"apscheduler.timezone": "UTC",
"apscheduler.job_defaults.max_instances": "10"})
@sched.scheduled_job("cron", minute="*/15", second="1")
def run_each_15m(interval=Client.KLINE_INTERVAL_15MINUTE):
# Code to execute
btn = Button(window, text="Clear alerts", command=clear)
btn.grid(column=0, row=1)
# Menu
menu = Menu(window)
new_item = Menu(menu)
new_item.add_command(label='Start', command=scan)
0
Cryptologicx
2 Апр 2020 в 12:51
По какой-то причине переход с BlockingScheduler на BackgroundScheduler имел огромное значение. По крайней мере, пока работает, я вернусь к этой теме, если возникнет другая проблема.
– Cryptologicx
2 Апр 2020 в 22:21
Надеюсь, вы хотя бы прочитали документацию о том, почему BlockingScheduler назван именно так. Его метод start() не возвращается, и поэтому ваш цикл событий tkinter не будет запущен.
– Alex Grönholm
3 Апр 2020 в 13:18
Да. Я знал, что это связано с планировщиком. Так что я посмотрел на это. Первая страница объяснила это. BlockingScheduler: используйте, когда в вашем процессе работает только планировщик. BackgroundScheduler: используйте, когда вы не используете ни одну из перечисленных ниже платформ и хотите, чтобы планировщик работал в фоновом режиме внутри вашего приложения.
– Cryptologicx
3 Апр 2020 в 14:09
1 ответ
И проблема решена, переход на BackgroundScheduler сделал свое дело.
from apscheduler.schedulers.background import BackgroundScheduler
sched = BackgroundScheduler({"apscheduler.timezone": "UTC"})
0
Cryptologicx
2 Апр 2020 в 22:39
Похожие вопросы
Новые вопросы
python-3.x
НЕ ИСПОЛЬЗУЙТЕ, ЕСЛИ ВАШ ВОПРОС ТОЛЬКО ДЛЯ PYTHON 3. Всегда используйте вместе со стандартным тегом [python].