问题标签 [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 投票
2 回答
4341 浏览

python - 在 uwsgi 应用程序中启动 APScheduler 最终会为每个工作人员配备一个调度程序吗?

我有一个烧瓶应用程序,其中我需要 APScheduler 的调度功能。问题是:

我在哪里启动调度程序实例?

我使用 uwsgi+nginx 来为这个应用程序提供多个工作人员,我最终会不会得到多个调度程序实例,而这些实例会相互忽略?如果这是正确的,一个作业会被触发多次,不是吗?

在这种情况下,最好的策略是什么,所以我最终只有一个 Scheduler 实例,并且仍然能够从计划的作业中访问应用程序的上下文?

尽管使用 gunicorn 而不是 uwsgi,这个问题也有同样的问题,但答案可能是相似的。

下面是将“app”定义为 uwsgi 可调用应用程序对象的代码。包含此代码的文件称为 wsgi.py(没关系)。

0 投票
2 回答
1522 浏览

python - 循环中的 Python Apscheduler cron 作业不会执行所有不同的版本

我有一个功能,可以每分钟从交易所获取和存储一些东西。我使用(通常非常出色)APScheduler运行这些功能。不幸的是,当我从循环中添加 cron 作业时,它似乎并没有像我预期的那样工作。

我有一个带有几个字符串的小列表,我想为此运行 getAndStore 函数。我可以这样做:

这很好用,但由于我是一名程序员并且我喜欢自动化的东西,所以我这样做:

当我运行它时,输出如下:

奇怪的是,它似乎为 A、B 和 C 启动了它,但实际上它为 C 启动了 3 次 cron。这是 APScheduler 中的错误吗?还是我在这里做错了什么?

欢迎所有提示!

0 投票
1 回答
4686 浏览

python - `/usr/bin/python' 中的错误:双重释放或损坏(输出):0x00007f7c3c017260

我正在使用(优秀的)Flask 框架用 Python 开发一个网站。在后端代码中,我使用 APScheduler 每分钟运行一些类似 cron 的作业,并使用 Numpy 计算一些标准偏差。不知道这些模块的使用是否重要,但我想我最好提及它们,因为我猜它们可能是最有可能的原因。

无论如何,在运行过程中,Python 本身似乎崩溃了,给出以下信息:

我可能错了,但据我所知,这很严重。所以我的问题实际上是;什么可能导致这种情况,我怎样才能获得有关此类崩溃的更多信息?是什么(out)意思?我无法真正重现这一点,但它在大约 5 个月内发生了 4 次。我在 Ubuntu 服务器 14.04 上运行标准 Python 2.7

我四处搜索,发现了一些关于类似崩溃的讨论,其中一件事又回来了:并发似乎以某种方式相关(这就是我包括使用 APScheduler 的原因)。

如果有人知道我如何调试这个或者可能是什么原因;欢迎所有提示!

0 投票
2 回答
6238 浏览

python - APscheduler 不会停止

我有我正在为一个网站开发的 python 代码,除其他外,它创建一个 excel 表,然后将其转换为 json 文件。我需要此代码连续运行,除非它被网站管理员杀死。

为此,我正在使用APscheduler。

代码在没有 APscheduler 的情况下完美运行,但是当我尝试添加其余代码时,会发生以下两种情况之一;1)它永远运行并且尽管使用“ctrl + C”也不会停止,我需要使用任务管理器停止它或2)它只运行一次,然后停止

不停歇的代码:

一次后停止运行的代码:

我从其他问题、一些教程和文档中了解到sched.shutdown应该允许代码被 ctrl+C 杀死 - 但是那不起作用。有任何想法吗?提前致谢!

0 投票
1 回答
1305 浏览

concurrency - 如何在设定的秒数后结束 APScheduler 作业?

我使用 APScheduler 来安排每分钟调用一次 API 的作业。我现在收到一个巨大的错误,其结尾是:

所以我猜API调用不知何故没有得到响应,因此永远不会完成。这会阻止运行下一个作业,因为第一个作业从未结束。因此,它以某种方式无法开始运行新作业。

我当然可以增加允许的并发运行实例的数量,但这并不能真正解决问题。我想如果在一定秒数后(比如说 5 秒)还没有完成,我需要结束工作。

因为我有几个其他的 API 调用作业,我从 APScheduler 开始,如果我能以某种方式使用 APScheduler 解决这个问题,那就太棒了。有人知道 APScheduler 是否可以终止运行时间过长的作业,还是我需要以其他方式解决这个问题?

欢迎所有提示!

0 投票
1 回答
929 浏览

python - Django Heroku APScheduler Scrapy

我在 Heroku 上运行了一个基本的 Django Web 应用程序。我想添加一个蜘蛛来根据计划任务(例如通过APScheduler )抓取一些网络(例如使用Scrapy),以获取一些加载了收集的数据的 Django 数据库表。

有人知道实现这种集成的基础文档或示例吗?我觉得很难弄清楚。

0 投票
1 回答
151 浏览

python - python中基于Cron的调度程序

我有一个每隔一小时运行一次的 python 应用程序,需要根据一些数据库配置执行一些计划任务。例如,一个配置可能是:

  • 每天 15:00 做 X
  • 每周一 8:00 做 Y

我可以延迟一小时。

我可以自己实现这个,但我想知道是否有一个开箱即用的解决方案,比如APScheduler,但它并不是一直在运行。

0 投票
1 回答
944 浏览

python-2.7 - 复制而不是修改作业 (APScheduler)

我正在用 APScheduler (v3.0.0) 编写一个数据库驱动的应用程序。尤其是在开发过程中,我发现自己经常想要命令计划的作业现在开始运行,而不会影响其后续计划。

当然,可以在创建工作时执行此操作:

但是,如果我已经安排了一个带有间隔或日期触发器的作业......

...似乎没有一个好方法可以告诉调度程序“制作一份立即开始的工作的副本”。我试过sched.reschedule_job(trigger=None)了,它安排工作立即开始,删除了它现有的触发器。

也没有明显、简单的方法来复制作业对象,同时保留其args和任何其他有状态属性。我想象的界面是这样的:

显然,APScheduler 已经包含复制作业对象的内部机制,因为重复调用get_job不返回相同的对象(即(sched.get_job(id) is sched.get_job(id))==False)。

有没有其他人在这里提出解决方案?如果没有,我正在考虑在开发人员的网站上发布建议。

0 投票
1 回答
532 浏览

python - 如何避免 apscheduler 将作业添加到子进程?

我已经在我的进程中添加了一个 apscheduler 作业,我发现我的子进程也有这个作业,并且我的主进程和子进程同时执行该作业......

主程序是

我的调度程序是

输出是

0 投票
1 回答
439 浏览

python - 在 apscheduler 中维护作业历史记录

我正在使用 apscheduler 来安排我的爬虫蜘蛛。我需要维护所有已执行作业的历史记录。我正在使用 mongodb 作业商店。默认情况下,apscheduler 只维护当前正在运行的作业的详细信息。如何让它存储特定作业的所有实例?