0

我有几个可调度的 HTTP 标注,并且设置为每隔一小时左右运行一次。在我在应用程序交换上部署应用程序并让销售人员下载它进行测试后,工作似乎没有执行。

我可以看到作业被安排相应地运行,但是数据库似乎永远不会改变。是否有任何原因会发生这种情况,或者我的代码中很有可能存在缺陷?

我在想它可能是权限,但我不确定(它是我正在部署的第一个应用程序)。

4

1 回答 1

2

检查您的最终用户的组织是否已将您的端点添加到设置中的“远程站点设置”。端点是指被调用的地址(或只是域)。

如果课程安排正确(我相信这将是手动操作,而不仅仅是安装后神奇地发生的事情......除非您使用了安装后脚本?)您还可以检查 Setup -> Apex Jobs 并检查如果有任何错误。如果我是对的,由于远程站点设置,将出现关于不允许调用的错误。如果没有——你仍然有机会看到一些让你思考的东西。例如批处理作业已成功执行但有 0 次迭代 -> 问题?

最后但并非最不重要的一点 - 你总是可以尝试调试日志 :) 在设置中启用它们(或打开开发者控制台),execute()手动触发预定类并观察结果?如何手动触发?像这样粘贴到“执行匿名”的东西:

MySchedulableClass sched = new MySchedubulableClass();
sched.execute(null);

或者 - 因为您知道预定课程中的内容 - 只需进行实验。

请注意,如果您可能正在执行的更新以某种方式违反例如您的客户端具有的验证规则 - 是的,数据库将保持不变。但在这种情况下,您仍然应该能够在设置 -> Apex 作业中看到失败。

于 2013-04-06T20:46:56.857 回答