【问题标题】:Scheduled Agents in Lotus Domino : How to schedule without running "now"Lotus Domino 中的计划代理:如何在不运行“现在”的情况下进行计划
【发布时间】:2014-09-02 10:32:20
【问题描述】:

我在 StackOverflow 上的第一个问题,请耐心等待..

我想创建一个计划代理,例如在今晚 23:00 到 01:00 之间运行,每半小时运行一次。它不能在此之前运行。

Domino 似乎让我玩了斯诺克。

如果我将代理计划设置为每天一次以上,每半小时一次,在上述时间之间,目标是所有文档..保存后它会立即运行。

如果我禁用它,请设置所有这些,然后启用它.. 启用后它会立即运行。

似乎如果您有一个应该每天运行一次以上的代理,它总是会立即运行。

请注意,我知道如果时间在 21:00 之前,我可以将一些 LotusScript 代码放入代理中以退出,这样第一次运行就不会执行任何操作。当然..我不应该那样做!

但无论如何,如果代理是一级方程式赛车,这也无济于事。除非您输入类似

的内容,否则无法像那样退出
@if(@hour(@now)<21;@return("");"continue);

.. 作为第一行,真的很乱。

所以..问题:

如何设置它,以便我将代理保存为每天运行一次以上,并且它只在我指定的时间之后运行?

谢谢!

编辑: 对于 LotusScript 代理,有一些关于如何停止第一次运行的选项。 然而,真正的问题是配方代理。我没有编写代理,也没有时间在 LotusScipt 中重新编写它——所以它必须是公式。在公式中它也快得多!

代理运行了 22,000 个文档并更改了一个简单的字段。 @if(@hour(@now)

【问题讨论】:

  • 可以发布您正在使用的日程安排的屏幕截图
  • 我很想看到一个公式代理,它需要很长时间才能在 LotusScript 中重新编写而不值得花时间。
  • 公平点,但这不是问题(对不起!)。这个客户端有很多这样的代理,并且采用“你更改调度服务器而不立即运行它的方式是在lotusscript中重新编写它然后在第一次运行时放入一行退出”的口头禅是行不通的.

标签: scheduled-tasks lotus-notes lotus-domino lotusscript lotus-formula


【解决方案1】:

代理商确实倾向于这样做。您是否尝试将其设置为“在此日期开始运行代理”并指定明天的日期?它不会在第一天的 23:00 运行,但至少也不会在 14:27 运行。

否则,您似乎已经有了答案,而且看起来还不错。不过,我确实认为 LotusScript 或 Java 将是比公式更好的选择。您不希望它考虑所有已处理的文档。我认为,如果您真的不想让它在错误的时间运行,那么无论如何都要进行时间检查是一个很好的安全措施,而且它只是一条线。

另一种选择是将代理设置为“从不”运行,并在服务器的通讯录中创建一个或多个程序文档,指示它在您想要的任何特定时间运行代理。

【讨论】:

  • 是的,如果它是 LotusScript,这不是一个问题 - 不得不做这样的事情似乎很奇怪。不幸的是,我并不总是可以选择是公式还是脚本,因为它们通常是现有的代理,我只是由于服务器更改或其他原因而修改了时间表。
  • 我会尝试“明天约会”的想法,虽然最初的问题突然出现,因为我们想在凌晨 1:00 运行一个公式代理,但找不到这样做的方法没有在 12:45 起床。
  • @user2808054:“明天”对于必须在凌晨 1:00 运行的代理的完美解决方案。
【解决方案2】:

我相信规则是所有计划的代理将在保存后立即运行。

我使用的技巧是设置两个代理。一位代理将是您的主要代理,本质上是您刚刚编写的代理。将其设置为手动运行,并将其命名为“主要代理”。你稍后会重命名它。

第二个代理应该只调用主要代理。您可以使用这个 LotusScript:

Dim s as New NotesSession
Dim db as NotesDatabase
Dim agent as NotesAgent

Set db = s.CurrentDatabase
Set agent = db.GetAgent("(Real Name Of Agent)")
agent.Run

最后,您可以将您的第一个代理重命名为“(代理的真实姓名)”,这样就避免了它自动启动。

或者,您可以将设置添加到服务器的 Notes.ini 以防止这种自动运行行为:

Amgr_SkipPriorDailyScheduledRuns=1

【讨论】:

  • 有趣的解决方案!虽然我真的很想看看代理计划中是否有一个设置,它等同于“当我保存时不要很好地运行它”。顺便说一句,如果代理每天只运行一次,则可以避免“它总是运行”规则。它遵循属性框中设置的时间。我遇到的问题是只有代理设置为每天运行一次。
  • 如果您能够更改服务器设置,我刚刚用另一个解决方案更新了我的答案。它将阻止服务器处理错过的调度代理,这是导致它们在保存时触发的功能。
  • 很遗憾我做不到(无法访问客户端服务器上的 notes.ini),但这对其他人来说是一个绝妙的答案。
  • 计划代理仅在其计划的运行时间已经过去的情况下才会“立即”运行。由于它计划运行到凌晨 1 点并且尚未运行,因此它将运行。如果它被安排在 2300-2359,它不会。
  • @David Navarre - 我刚刚检查过这个,你是绝对正确的。如果您可以将其写为答案,我会将其设置为“正确答案”。感谢负载!
【解决方案3】:

计划代理仅在其计划运行时间已过的情况下才会“立即”运行。由于它计划运行到凌晨 1 点并且尚未运行,因此它将运行。如果它被安排在 2300-2359,它不会。

【讨论】:

  • 这就是答案!将“开始运行代理从”设置为今天的日期和未来的时间。我尝试了这一点来证明这一点 - 这是 2014 年 9 月 3 日,18:00。所以我将开始运行时间设置为 2014 年 3 月 9 日(是的,我是英语),开始时间为 19:00,运行间隔为 5 分钟。等待 15 分钟后它没有运行。尝试了同样的事情,但将时间设置为 15:00(即早于“现在”).. 它立即运行。
  • 所以.. 如果您在“明天早上”(例如 12:30)运行代理,请务必将开始日期设置为“明天”
猜你喜欢
  • 1970-01-01
  • 2012-12-30
  • 1970-01-01
  • 1970-01-01
  • 2017-11-06
  • 1970-01-01
  • 1970-01-01
  • 2016-02-05
  • 1970-01-01
相关资源
最近更新 更多