问题标签 [scheduling]

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 投票
5 回答
3362 浏览

python - python长时间运行的守护进程作业处理器

我想编写一个长时间运行的进程(linux daemon),它有两个目的:

  • 响应 REST Web 请求
  • 执行可以安排的作业

我最初将它作为一个简单的程序运行,该程序将运行并执行我然后 cron'd 的更新,但现在我有添加的 REST 要求,并且还想更改某些作业的频率,但不更改其他作业的频率(假设所有工作都有不同的频率)。

我有 0 次编写长时间运行的流程的经验,尤其是那些自己做事而不是响应请求的流程。

我的基本计划是在单独的线程/进程中运行 REST 部分,并认为我会单独运行作业部分。

我想知道是否存在任何模式,特别是 python,(我已经看过并且还没有真正找到任何我想做的例子)或者是否有人对从哪里开始转换我的项目以满足这些有任何建议新的要求。我见过一些涉及日程安排的项目,但我真的在这里寻找真实世界的用户体验/建议。什么对您有效/无效?

0 投票
4 回答
1447 浏览

windows-mobile - 用于手机的 CRONTAB

我只是想知道,但有人可能已经想到了!

crontab是否可以为手机(支持 Java 的手机)构建类型应用程序?我正在考虑一个应用程序,它会在预定的时间进行检查,并且在某些情况下会在没有人工干预的情况下进行操作。

有没有人构建过这样的应用程序或有想法?链接和指针会有所帮助。或者这样的应用程序已经存在于 Windows 手机上?

提前致谢。

0 投票
4 回答
119 浏览

project-management - 什么是现实(但快速)的 beta 版本控制计划?

我的团队即将部署我们的应用程序,我们即将与一些选定的客户进行封闭测试。我想知道生产新的 beta 版本的实际时间框架是多少,以及在我们称第一个版本足够稳定以供发布之前,我们实际期望需要多少这样的周期。

该应用程序本身是一个医学影像应用程序,因此它绝对不会崩溃或损坏数据。许多用户还将每天连续使用该软件至少四到八小时,因此我预计会很快遇到正常的用户错误。该应用程序与特定的硬件相关联,如果他们拥有硬件,他们将需要此应用程序或应用程序的先前版本来运行他们的硬件。

当然,也有来自上面的压力,现在,现在,现在!由于他们支付我的薪水,我有义务听从他们的指示,尽管我可能对快速释放有任何疑虑。

我认为可能会出现以下情况:

  1. 两周的周期时间。我们有一组选定的用户,比如三到五个站点,当他们遇到错误时,我们会修复它们。我认为这个循环时间快得离谱,但我已经感觉到这将是权力想要部署的方式。对于这种方法,我们将产品锁定到一个特定的构建,并且我们在下一个版本中修复任何累积的错误(可能是 50 个构建之后)。
  2. 六周的周期时间。我们有相同的选定用户组,但该组可以增长,随着它的增长,我们会像第 1 步那样行动。没有第 1 步那么快,但肯定会更加谨慎。问题是,用户可能会觉得产品有太多错误(如果他们遇到错误),并且在我们发布另一个版本之前不会有这种印象,此时他们可能不再关心。由于我之前提到的硬件存在这种锁定,这种错误印象可能只是转化为轻微的抱怨而不是销售损失。但是,每个较新的 beta 版本都将比上一个更经过审查。
  3. 尽快修复错误,将修复的版本交到用户手中。我们有一个构建服务器,我们有几个测试人员,而且我们的响应速度非常快(您甚至可以说“敏捷”)。只要修复不会破坏软件需要的其他一些行为,就像我们修复错误一样快速地发布错误修复是否有缺点?如果我们采用这种方法,我们会做周期,还是只是一个测试“周期”?

我意识到这些问题因用户而异,而且像暴雪或 Gmail 测试期这样的问题有点偏长。我仍然想大致了解我应该如何回应管理层不断提出的关于它应该处于测试阶段多长时间的问题。

0 投票
3 回答
163 浏览

ruby-on-rails - 你会推荐什么方法来实现基于 Web 的调度程序

我发现我经常需要在我开发的应用程序中实现某种调度程序。应用范围可以从简单的维护任务到相当复杂的任务。

到目前为止,我的方法是设置 cron 作业,这些作业基本上对排队的命令进行批处理。例如,我有 cron 每 5 分钟调用一次脚本(我在 RubyOnRails 中工作,所以这是一个运行脚本),它检查是否有任何项目需要处理,然后将任务委托给适当的处理程序。

这可行,但由于某种原因感觉不是最好的方法。你能推荐一些东西,或者对此有任何意见吗?

我在 Ruby on Rails 工作,但没有理由这个讨论应该仅限于 RoR。

谢谢,

0 投票
2 回答
4341 浏览

cron - 这个 Quartz Cron 表达式是如何执行的

我有以下内容;

我的问题是什么时候为空的 cron 表达式触发这项工作?

0 投票
4 回答
3298 浏览

ruby-on-rails - 如何在 Rails 中建模和存储重复任务?

rails 中的 Cron 解决方案很多而且非常好。这不是我在这里挣扎的。

相反,我遇到的麻烦是让用户创建自己的重复任务(如提醒) - 特别是如何在数据库中建模和存储这些任务(一个好的 UI 也很重要 - 如果有的话会很棒那里的代码)。谷歌日历是一个很好的例子(添加事件的 UI,而不是整个日历)......他们应该能够每天下午 1 点 CST,或周一/周三/周五,或每周等。无论 cron 解决方案是什么然后需要轮询数据库以查看在该时间需要发送哪些提醒等。

有人在 Rails 中看到过一个很好的插件/宝石吗?好像有什么东西可以做,但我还没有找到。

谢谢!

0 投票
1 回答
592 浏览

c# - 实现抢占式等待队列的最有效方法?

我一直在绞尽脑汁想弄清楚这一点。这是场景。我基本上有一个排序的静态列表,其中包含一个事件应该发生的不同时间。对于可视化:

因此,第一次通过该方法时,该lastTime属性将为 null,因此它将“做一些工作”并将 lastTime 属性设置为当前时间。time 属性表示何时需要再次执行该项目。例如,由于元素 0 的 a oflastTime03:10:00Time 为 1,因此需要在03:11:00lastTime03:10:0003:12:00

这是我要做的粗略实现:

如果没有什么需要做的,它将休眠,直到列表中的下一个项目准备好更新。放置内部 for 循环是为了防止更新频率较高的项目必须等到更新频率较低的项目才能再次更新自身。在理想情况下,它会在调用 Sleep 之前检查它上面的任何项目是否需要更新。如果当前项目之上的任何项目需要在当前项目休眠之前更新,则继续更新它们。如果没有,则当前项目将调用 Sleep 以等待它准备好更新。我希望这是有道理的。

我完全错了吗?有没有更简单的解决方案?我对任何和所有建议持开放态度。另外,请记住,此列表可能会增长到数千个项目。提前致谢。

0 投票
6 回答
240 浏览

mysql - 数据库设计 - NULL 或最大值来指示此日期值?

所以我正在开发一个使用 MySQL 数据库的计划应用程序。该站点的模块之一是供经理跟踪迟到、加班和缺勤。目前的网站一团糟。它只是让经理输入关键数据,但不会将经理绑定到任何已知数据(例如员工预计何时到达/离开),甚至不要求他们使用标准格式。一些经理进入 30 分钟(意味着迟到 30 分钟),而其他经理可能进入 8:30(意味着他们应该在 8:00 进入)等等。

我的版本将受到更多限制。经理会选择员工,然后选择有问题的班次,他们基本上可以输入两个值:实际到达时间,实际离开时间。这样,当报告运行并验证时间表时,只需进行数学运算即可查看它们是否迟到/早到/加班。但我遇到了一个困难的地方:

首先,如果有人请病假(或只是没有出现),我会得到它,所以经理只需勾选一个框,他们根本不会进行任何时间调整。它只是完全抹去了那个时间。我是否应该通过将两个时间值都设置为 NULL 来做到这一点,并且在运行任何查询时,NULL 将根据需要进行处理(可能会反转剩余时间和时间到达,因此两端都为零),或者我应该时间到了和剩下的时间都设置为“预期的班次结束”时间,所以它的结果为零?

我不喜欢使用 NULL,因为它只是感觉没有可用的数据,但我不喜欢使用预期的班次结束,因为它看起来好像他们真的到达了,就在他们离开的时候。

这实际上是一个如何使数据语义化而不必使其过于复杂(使用 NULL)的问题。

0 投票
2 回答
146 浏览

mysql - 如果在另一个表中不匹配,使用什么作为外键 - MySQL

我正在为日程安排网络应用程序开发出勤/加班模块。这个想法是在 MySQL 中有一个班次表,每个班次都有一个开始和结束时间。经理将选择一个班次并在考勤表中输入该员工是否早到/迟到/早退/加班。出勤表中的该条目被键入班次 ID #(这只是一个枚举键)。

但是,如果有人在他们的休息日进来,则无需切换到密钥。什么是用于这些键的好系统?我可以设置条件枚举吗?以及如何避免与班次 ID 重叠的风险?将加班班次添加回原始时间表数据库不是一种选择。

0 投票
4 回答
143 浏览

linux - 请指出工具或方法来监控哪个tad在毫秒级运行

请指点我监控哪个tad在毫秒级别运行的工具或方法?谢谢。

假设我有 3 个线程正在运行,我想要如下信息:

注意:我更喜欢在不侵入内核的情况下解决这个问题。

编辑 :

  1. 在具有 2.6.21 Linux 内核的 MIPS 平台中

  2. 命令 TOP 可以提供一些关于线程的信息,但不能提供太多信息。