解释如何在 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的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Symfony2 中创建 cron 任务

如何在App Engine中创建一个针对服务和版本的cron作业?

Hybris 拦截器没有被触发

运行 cron 作业按钮在后台 SAP Hybris 1905 中不可见?

如何在 Hybris 中创建新语言?

text 在Justhost中创建Cron作业