我最近设置了Scheduler add并设置了我的rake任务'rake cron_jobs:my_task'.
当我使用'heroku run rake cron_jobs:my_task'进行测试时,它运行正常.
调度程序还声称它在应该运行时运行,并计划再次运行,但没有与该进程相关联的日志记录,如https://devcenter.heroku.com/articles/scheduler#inspecting-output所说应该有.
'heroku ps'显示没有预定的dynos,'heroku logs --ps scheduler.1'没有输出.
我错过了什么?
我正在编写一个简单的函数,它使用 AsyncIOScheduler 根据计划发送消息。
scheduler = AsyncIOScheduler()
scheduler.add_job(job, "cron", day_of_week="mon-fri", hour = "16")
scheduler.start()
Run Code Online (Sandbox Code Playgroud)
它似乎有效,但我总是收到以下消息:
PytzUsageWarning: The zone attribute is specific to pytz's interface; please migrate to a new time zone provider. For more details on how to do so, see https://pytz-deprecation-shim.readthedocs.io/en/latest/migration.html
PytzUsageWarning: The localize method is no longer necessary, as this time zone supports the fold attribute (PEP 495)
Run Code Online (Sandbox Code Playgroud)
我根本不熟悉 python 中的时间,所以我不太确定这条消息要求我做什么。我访问了消息中提供的链接,但那里的解释对我来说太复杂了。据我了解,我必须迁移到使用 PEP495,但我到底该怎么做呢?
在给定当前时间和cron规格的情况下,计算事件的下一个运行时间的有效方法是什么?
我正在寻找除"每一分钟检查它是否符合规格"之外的其他内容.
规范示例可能是:
Python代码很可爱,但是psuedo代码或高级描述也会受到赞赏.
[更新]假设规范已经解析并且格式合理.
我现在正在研究Linux的调度程序.关于CPU核心亲和力,我想知道以下内容:
1)每个进程(线程)如何固定到核心?
有一个系统调用sched_setaffinity来更改执行进程的核心关联.但在内部,当生成进程(或线程)时,默认的Linux调度程序如何将进程(线程)分配给特定的核心?我修改了sched_setaffinity系统调用以转储有关正在从一个核心移动到另一个核心的任务的信息.
printk(KERN_INFO "%d %d %ld %lu %s\n", current->pid, current->tgid,
current->state, current->cpus_allowed,
current->comm);
Run Code Online (Sandbox Code Playgroud)
似乎没有上述信息的转储/var/log/messages.因此默认的调度程序以不同的方式将每个进程固定,但我无法弄清楚如何.
2)是否可以通过PID或其他信息获取核心ID?
这是我想在Linux内核中实现的.在task_struct,有一个成员叫cpus_allowed.但这是设置亲和力的掩码,而不是核心ID.我想检索一个数据,标识运行指定进程的核心.
谢谢,
我想在Windows 7机器上每天运行一次简单的JAVA程序.
我的代码在NetBeans中运行良好.如果我做了一个干净的构建它建议:
C:\Program Files\Java\jdk1.7.0/bin/java -jar "C:\Users\User1\Documents\NetBeansProjects\Facebook\dist\Facebook.jar"
Run Code Online (Sandbox Code Playgroud)
当然,由于程序和文件之间的空间,这在DOS提示符下不起作用所以我这样做:
C:\Program Files\Java\jdk1.7.0/bin/java -jar "C:\Users\User1\Documents\NetBeansProjects\Facebook\dist\Facebook.jar" -jar "C:\Users\User1\Documents\NetBeansProjects\Facebook\dist\Facebook.jar"
Run Code Online (Sandbox Code Playgroud)
这适用于DOS提示符.
我现在在Windows Scheduler中创建一个任务来运行:
C:\Program Files\Java\jdk1.7.0/bin/java
Run Code Online (Sandbox Code Playgroud)
带参数:
-jar "C:\Users\User1\Documents\NetBeansProjects\Facebook\dist\Facebook.jar"
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我看到的只是一个DOS框闪烁一秒钟.我希望代码运行大约需要30秒.代码应该将数据持久保存到数据库中,不会发生更新.
代码也使用,java.util.logging所以我应该看到日志条目,我不这样做.
我强烈怀疑我没有正确运行JAVA命令,或者当从DOS提示符运行时通过调度程序运行时出现错误的类路径问题.
帮助将不胜感激.如果您之前已经看过这个并且可以对它进行排序那么会很棒.如果您可以告诉我如何从Scheduler获取有意义的错误跟踪,那么这也非常有用.
谢谢!
Oozie工作流程,协调员和捆绑包有什么区别?
Oozie工作流定义了一系列动作.我们需要在每次运行时手动调用它.可以通过协调员安排相同的工作流程.这种理解是否正确?
然后什么是额外捆绑?
我想它会再次用于安排一组协调员.那么为什么不能使用一个协调器来安排其他协调器,就像一个工作流可以有另一个子工作流.
我想在晚上运行python脚本,所以我想使用APScheduler.我将在第二天晚上凌晨1点开始运行,每晚运行一次
我的调度程序脚本看起来像这样(scheduler.py):
from apscheduler.scheduler import Scheduler
from datetime import datetime, timedelta, time, date
def myScript():
print "ok"
if __name__ == '__main__':
sched = Scheduler()
startDate = datetime.combine(date.today() + timedelta(days=1),time(1))
sched.start()
sched.add_interval_job(myScript, start_date = startDate, days=1)
Run Code Online (Sandbox Code Playgroud)
在shell中,我这样做:(
python myScheduler.py & disown我正在远程运行它,所以我想在后台运行它并且不知道它.立刻,行下面会出现一个数字(PID),就像其他每个python脚本一样.但是我做ps -e | grep python,那个数字不在那里.我试着这样做kill -9 PID,我得到一条消息说这个工作不存在.
调度程序是否正在运行?如果是,我怎么能阻止它?如果没有,我做错了什么?
我是Linux内核的初学者,我正在努力学习Linux如何安排进程.
我已经阅读了有关Linux内核的一些书籍,并浏览了IBM http://www.ibm.com/developerworks/linux/library/l-cfs/的所有链接,但我仍然有些疑惑.
sysctl_sched_latency?place_entity函数中实际执行的操作时? vruntime通过减去sched_latency?进行调整?这不能导致运行队列中的进程vruntime值有很大差异吗?我正在使用Python apscheduler(版本3.0.1)每秒执行一个函数
代码:
scheduler = BackgroundScheduler()
scheduler.add_job(runsync, 'interval', seconds=1)
scheduler.start()
Run Code Online (Sandbox Code Playgroud)
它大部分时间都很好,但有时我会收到这个警告:
WARNING:apscheduler.scheduler:Execution of job "runsync (trigger: interval[0:00:01], next run at: 2015-12-01 11:50:42 UTC)" skipped: maximum number of running instances reached (1)
Run Code Online (Sandbox Code Playgroud)
1.这是执行此方法的正确方法吗?
这个警告意味着什么?它是否会影响函数内部的任务执行?
3.如何处理这个?
谁安排调度程序?
这是创建的第一个任务以及如何创建第一个任务?它不需要任何资源或内存吗?不像鸡蛋和鸡蛋的情景?
调度程序不是一项任务吗?是否在每个时间片结束时获取CPU来检查哪个任务需要给CPU?
是否有任何良好的联系使得一个人能够深入思考和理解所有这些概念,而不是泄露出一些需要被遗忘的理论?