Apscheduler 时钟进程每次都崩溃

问题描述

我正在创建一个相当简单的小应用程序,并尝试使用 apscheduler 在特定时间向用户发送文本。它在本地工作得很好,但是在 procfile 中指定的时钟进程每次都会崩溃。我得到的唯一信息是“进程退出,状态代码为 0。状态从 up 变为 crashed。”当我运行 heroku logs -t -p clock 时。

我的 procfile 如下所示:

web: uvicorn remind_me.main:app --host=0.0.0.0 --port=${PORT:-8000} clock: python remind_me/views/register.py

我还运行了 heroku ps:scale clock=1 命令。

我的“视图”代码如下:

from apscheduler.schedulers.background import BackgroundScheduler
from dateutil.parser import parse`
                                              
sched = BackgroundScheduler({'apscheduler.timezone': 'EST'})

def scheduled_job(msg,number,carrier):
    send(msg,carrier)

@router.post('/')
@template()
async def home(request: Request): 
    vm = Homeviewmodel(request)
    await vm.load()
    
    if vm.error:
        return vm.to_dict()

    msg,carrier,run_date = vm.task,vm.number,vm.carrier,vm.date_and_time
    run_date = parse(run_date)
    sched.add_job(scheduled_job,args=(msg,carrier),trigger='date',run_date=run_date)

    try:
       sched.start()
    except:
       pass

    db_storage.store_events(vm.name,vm.task,vm.date_and_time)
    return fastapi.responses.RedirectResponse(url="/",status_code=status.HTTP_302_FOUND)

我显然遗漏了一些与 FastAPI 相关的导入以及我对数据库所做的一些事情,但为了简洁起见,我遗漏了这些。一切都在本地运行良好,所有页面在 Heroku 上运行良好,只是时钟进程每次都崩溃。

我也用阻塞调度程序尝试过这个,但没有运气,因为它没有返回,显然我需要页面返回/重定向

我想知道它是否与视图本身的异步方面有关,以及我是否可能需要成为 APScheduler 的异步方法(我不记得它的名字了。)。你们可以提供的任何建议将不胜感激。谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...