问题标签 [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.

0 投票
1 回答
1294 浏览

python - 如何使用 APScheduler 保留计划的作业直到它们完全完成?

我将APScheduler与 Python 2.7.6 一起使用。我正在使用BlockingScheduler将计划作业和SQLAlchemy存储为持久数据库。

我想安排工作并保证它们完成(功能到达最后一行)。一切工作正常,但我看到当作业开始时,它会从数据库中删除,即使作业没有完成整个方法。

注意:显然,我开发的作业没有状态,并且可以在下一个程序执行中重新执行。这应该不是这个问题要讨论的问题。

在使用 APScheduler 执行完整的功能/方法之前,保持作业的最佳方法是什么?

0 投票
1 回答
1530 浏览

cron - 如何在 APScheduler 中获取之前的运行时间?

我知道job.next_run_time要进行下一次运行,但无论如何要计算上一次运行时间是多少?

0 投票
0 回答
3769 浏览

python - 已达到最大运行实例数 (1) - apscheduler

我正在使用 apscheduler 在我的应用程序中递归地运行一个函数。该功能的基本来源如下:

我从阅读这个线程的理解是,如果在下一个作业开始时调用的函数尚未完成,则会引发“达到最大运行实例数”错误。我了解该线程中解决方案背后的理论,但不确定应用程序。

我是否应该在被调用函数的末尾明确声明终止/终止进程以确保在启动下一个线程之前删除原始线程?

0 投票
1 回答
1146 浏览

python - 在 Gunicorn 中运行 ApScheduler 而不复制每个 Worker

标题基本上说明了一切。我让 gunicorn 和 5 名工人一起运行我的应用程序。我有一个所有工作人员都需要访问的数据结构,它正在由 apscheduler 按计划更新。目前,每个工人运行一次 apscheduler,但我只希望它运行一次。有没有办法做到这一点?我尝试使用该--preload选项,让我只加载一次共享数据结构,但似乎并没有让所有工作人员在更新时都可以访问它。如果有帮助,我愿意切换到 uWSGI。

0 投票
0 回答
483 浏览

python - Python 应用程序调度程序在 systemd 上的运行方式不同

我有一个使用后台调度程序运行不同任务的 python 服务。它使我们的数据库与使用 HTTP GET 和 POST 的其他 API 保持同步。

我们在 heroku 上运行它没有任何问题。我们最近将我们的生产箱移到了 OVH 上。当我使用它运行它时

一切正常。当我在后台运行它时

或使用这个 systemd 单元文件

该过程运行没有错误,但它不会工作超过 1 小时。

我已经使用 journalctl 来获取进程日志

当它正常运行时,这些警告出现的频率较低。它们是其他日志消息之一。

我目前的假设是缺少环境变量或相对路径。我目前正在调查,非常感谢任何帮助!

0 投票
1 回答
900 浏览

python-3.x - 用于调度程序和执行程序的 APScheduler 记录器

在我的应用程序中,我必须使用 apscheduler。我像这样为 BackgroundScheduler 设置记录器:

确实调度程序使用了适当的记录器。但是调度程序内部的执行程序仍然使用默认值。为了克服这个问题,我不得不在上面的代码中添加一行:

但这对我来说看起来像是一个肮脏的黑客。为调度程序和执行程序设置记录器是否有任何正确的方法?

0 投票
2 回答
380 浏览

heroku - Heroku Apscheduler:定时作业可以,但不适用于调度作业

我正在按照这个来安排我在 Heroku 上的 Django cron 作业。

Procfile

createStatistics.py

运行正常,timed_job但是scheduled_job没有效果。我是否需要为apscheduler(我设置了 TIME_ZONE settings.py)设置任何时区信息?如果是这样,怎么做?还是我错过了什么?

0 投票
2 回答
10715 浏览

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 秒打印一次日志,所以代码显示?

0 投票
2 回答
2259 浏览

python - APScheduler 使用装饰器添加函数引用

我正在尝试添加一个带有装饰器的函数来安排其执行,但出现以下错误:

我的功能是

我添加如下:

是否可以使用装饰器添加功能?有任何想法吗?

作为一种解决方法,我可以定义一个内部定义并调用我的装饰器,但我认为它是不好的解决方案,我更喜欢直接使用它

解决方法:

0 投票
1 回答
1308 浏览

heroku - APScheduler 在本地服务器运行一个线程,远程部署时运行两个线程

我有一个 Flask 网络服务器,它与 POSTGREsql 数据库交互以从网站获取和插入数据。

我还有一个 APScheduler 后台调度程序任务,它定期检查数据库,查找具有某些属性的某些对象,例如创建后 5 分钟、列 x 超过 10 等,然后在电子邮件中发送该信息。

我现在遇到的问题是,当在本地环境中运行时,只执行一个任务,并且它每(30)秒运行一次,就像我想要的那样。但是,如果我在 Heroku 上部署它,两个相同的任务会在几毫秒内执行,这会导致问题。

负责运行后台任务的代码就是这个。