问题标签 [apscheduler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何使用 APScheduler 保留计划的作业直到它们完全完成?
我将APScheduler与 Python 2.7.6 一起使用。我正在使用BlockingScheduler将计划作业和SQLAlchemy存储为持久数据库。
我想安排工作并保证它们完成(功能到达最后一行)。一切工作正常,但我看到当作业开始时,它会从数据库中删除,即使作业没有完成整个方法。
注意:显然,我开发的作业没有状态,并且可以在下一个程序执行中重新执行。这应该不是这个问题要讨论的问题。
在使用 APScheduler 执行完整的功能/方法之前,保持作业的最佳方法是什么?
cron - 如何在 APScheduler 中获取之前的运行时间?
我知道job.next_run_time
要进行下一次运行,但无论如何要计算上一次运行时间是多少?
python - 已达到最大运行实例数 (1) - apscheduler
我正在使用 apscheduler 在我的应用程序中递归地运行一个函数。该功能的基本来源如下:
我从阅读这个线程的理解是,如果在下一个作业开始时调用的函数尚未完成,则会引发“达到最大运行实例数”错误。我了解该线程中解决方案背后的理论,但不确定应用程序。
我是否应该在被调用函数的末尾明确声明终止/终止进程以确保在启动下一个线程之前删除原始线程?
python - 在 Gunicorn 中运行 ApScheduler 而不复制每个 Worker
标题基本上说明了一切。我让 gunicorn 和 5 名工人一起运行我的应用程序。我有一个所有工作人员都需要访问的数据结构,它正在由 apscheduler 按计划更新。目前,每个工人运行一次 apscheduler,但我只希望它运行一次。有没有办法做到这一点?我尝试使用该--preload
选项,让我只加载一次共享数据结构,但似乎并没有让所有工作人员在更新时都可以访问它。如果有帮助,我愿意切换到 uWSGI。
python - Python 应用程序调度程序在 systemd 上的运行方式不同
我有一个使用后台调度程序运行不同任务的 python 服务。它使我们的数据库与使用 HTTP GET 和 POST 的其他 API 保持同步。
我们在 heroku 上运行它没有任何问题。我们最近将我们的生产箱移到了 OVH 上。当我使用它运行它时
一切正常。当我在后台运行它时
或使用这个 systemd 单元文件
该过程运行没有错误,但它不会工作超过 1 小时。
我已经使用 journalctl 来获取进程日志
当它正常运行时,这些警告出现的频率较低。它们是其他日志消息之一。
我目前的假设是缺少环境变量或相对路径。我目前正在调查,非常感谢任何帮助!
python-3.x - 用于调度程序和执行程序的 APScheduler 记录器
在我的应用程序中,我必须使用 apscheduler。我像这样为 BackgroundScheduler 设置记录器:
确实调度程序使用了适当的记录器。但是调度程序内部的执行程序仍然使用默认值。为了克服这个问题,我不得不在上面的代码中添加一行:
但这对我来说看起来像是一个肮脏的黑客。为调度程序和执行程序设置记录器是否有任何正确的方法?
heroku - Heroku Apscheduler:定时作业可以,但不适用于调度作业
我正在按照这个来安排我在 Heroku 上的 Django cron 作业。
Procfile
:
createStatistics.py
:
运行正常,timed_job
但是scheduled_job
没有效果。我是否需要为apscheduler
(我设置了 TIME_ZONE settings.py
)设置任何时区信息?如果是这样,怎么做?还是我错过了什么?
python - 如何让 Python apscheduler 在后台运行
我想让 Python apscheduler 在后台运行,这是我的代码:
当我运行命令时:
我刚得到这个:
INFO:apscheduler.scheduler:Scheduler 已启动 DEBUG:apscheduler.scheduler:正在寻找要运行的作业 DEBUG:apscheduler.scheduler:No jobs; 等到添加作业 INFO:apscheduler.scheduler:将作业“simple_task”添加到作业存储“默认”
和ps:
我刚得到54615 ttys000 0:00.00 grep python
我的问题是如何设置代码在后台运行,我可以看到它正在运行,或者它每 5 秒打印一次日志,所以代码显示?
python - APScheduler 使用装饰器添加函数引用
我正在尝试添加一个带有装饰器的函数来安排其执行,但出现以下错误:
我的功能是
我添加如下:
是否可以使用装饰器添加功能?有任何想法吗?
作为一种解决方法,我可以定义一个内部定义并调用我的装饰器,但我认为它是不好的解决方案,我更喜欢直接使用它
解决方法:
heroku - APScheduler 在本地服务器运行一个线程,远程部署时运行两个线程
我有一个 Flask 网络服务器,它与 POSTGREsql 数据库交互以从网站获取和插入数据。
我还有一个 APScheduler 后台调度程序任务,它定期检查数据库,查找具有某些属性的某些对象,例如创建后 5 分钟、列 x 超过 10 等,然后在电子邮件中发送该信息。
我现在遇到的问题是,当在本地环境中运行时,只执行一个任务,并且它每(30)秒运行一次,就像我想要的那样。但是,如果我在 Heroku 上部署它,两个相同的任务会在几毫秒内执行,这会导致问题。
负责运行后台任务的代码就是这个。