解释如何在 Hybris 中创建 Cron Job
Posted
技术标签:
【中文标题】解释如何在 Hybris 中创建 Cron Job【英文标题】:Explain how to Create Cron Job in Hybris 【发布时间】:2015-07-11 22:08:40 【问题描述】:我进行了研究,但找不到真正的答案。 高度赞赏 hybris 专家的任何意见
【问题讨论】:
查看此链接:stackextend.com/hybris/… 【参考方案1】:-
Cronjob:要执行的作业。为此创建一个从 CronJob 扩展的项目类型。
Job:将写入实际 cronjob 逻辑的位置。为此,创建一个从 AbstractJobPerformable<...abovegeneratedmodel> 扩展的类并覆盖 perform() 方法。这里的 perform 方法将包含实际的作业逻辑。
在 xxxcore-spring.xml 中将上述 Job 类定义为 bean。
转到 hmc-->System-->右键单击 Cronjobs 并创建新的 cronjob。
触发器:在触发 cronjob 时保留 cron 表达式。通过 TimeSchedule 选项卡添加触发条件。
单击 StartCronJob Now 以安排 cronjob。
您也可以使用 impex 脚本来创建触发器,如 thijsraets 所说。
INSERT_UPDATE Trigger;cronJob(code)[unique=true];cronExpression
;myCronJob;30 23 14 2 5 ? 2015
【讨论】:
非常感谢 MANOHAR。除了 Impex 之外,还有哪些创建触发器的选项 hmc-->system-->右击cronjobs-->选择你要创建的cronjob-->选择TimeSchedule选项卡...在那里你会找到触发部分-->对单击该部分->创建触发器。 非常感谢 Manohar,Cron 作业是否与 Java 线程相关联?关闭时会发生什么......如果它没有活动的触发器 没有调度的 cronjob 有什么用。触发器包含调度条件(比如在什么时间执行)。 我认为,在没有触发器的情况下,我们可以按需执行它们。因此,您可以在没有任何触发器的情况下进行 cronjob。希望这会有所帮助。【参考方案2】:您可能希望此 cronJob 执行自定义操作,为此您需要将 cronJob 与实际操作/任务链接起来:作业本身。创建一个扩展AbstractJobPerformable
并实现“执行”方法的bean。现在在 hMC 中,您可以创建您的 Cron 作业(System->CronJobs),在 Job
下指向您创建的 bean。
如果您想从代码中执行此操作,可以使用 impex,例如:
INSERT_UPDATE CronJob;code[unique=true];job(code);sessionLanguage(isocode);sessionCurrency(isocode)
;myCronJob;myJobBean;en;EUR
INSERT_UPDATE Trigger;cronJob(code)[unique=true];cronExpression
;myCronJob;30 23 14 2 5 ? 2015
分配给一个字符串并导入这个 impex(或者只是在 hac 中执行):
final CSVReader importReader = new CSVReader(impEx);
final Importer importer = new Importer(importReader);
importer.getReader().setDumpingAllowed(true);
try
importer.importAll();
catch (final ImpExException e)
e.printStackTrace();
importReader.closeQuietly();
importer.close();
(如果您使用的是5.5.1:如果您指定多个执行时间,触发器将无法正常工作。如果您只指定单个执行时间,我们希望SAP能够解决这个问题)
【讨论】:
非常感谢这个全面的 只是想知道您为什么使用 IMPEX 来添加业务逻辑。还有什么其他选择.... Bean shell、Interceptor、Java 等我相信 只是想知道您为什么使用 IMPEX 来添加业务逻辑。还有什么其他选择.... Bean shell、Interceptor、Java 等我相信 你也可以使用 CronJobModel(并设置触发器),只是觉得 impex 看起来很透明 我当然不是 impex 方面的专家。我正在尝试扩展我的概念理解,但努力了解全局...... Impex 在哪里使用以上是关于解释如何在 Hybris 中创建 Cron Job的主要内容,如果未能解决你的问题,请参考以下文章
如何在App Engine中创建一个针对服务和版本的cron作业?