如何在sugarcrm中创建自定义调度程序?

问题描述 投票:0回答:1

我正在尝试使用

中的文档在 SugarCRM 中创建自定义调度程序

http://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_7.9/Architecture/Job_Queue/Schedulers/Creating_Custom_Schedulers/.

我已在路径 ./custom/Extension/modules/Schedulers/Ext/Language/en_us.final_test.php 中创建了作业标签

有代码

$mod_strings['LBL_FINAL_TEST'] = 'Final Test Of Scheduler';

并在路径中创建了工作函数 ./custom/Extension/modules/Schedulers/Ext/ScheduledTasks/final_test.php 有代码

<?php
 array_push($job_strings, 'final_test');
 $GLOBALS['log']->fatal('my fatal message inside function');//this works
 function final_test(){
     $GLOBALS['log']->fatal('my fatal message inside function');//this don't
     return true;
 }
?>

如果我放在这里

$GLOBALS['log']->fatal('my fatal message outside function');

在函数之外,然后它运行我在日志文件中收到消息。但 当我放

$GLOBALS['log']->fatal('my fatal message inside function');

在函数内部,这不起作用,我没有得到任何日志。

我哪一部分做错了?我在哪里可以获得为 SugarCRM 开发自定义调度程序的正确教程?

注意:我已将调度程序设置为每分钟运行

php cron scheduled-tasks scheduler sugarcrm
1个回答
0
投票

我猜你的调度程序根本没有运行。 (您的“外部”消息可能只会在文件加载时才会进入日志)

确保您的 cron 作业配置正确,因为它们需要每分钟调用 Sugar 的调度程序引擎:https://support.sugarcrm.com/Knowledge_Base/Schedulers/Introduction_to_Cron_Jobs/

如果您不想设置它们,您还可以在 Sugar 目录中使用

php -f cron.php
(在 Web 服务帐户上,例如
sudo -u www-data php -f cron.php
,如果在 Debian linux 上)手动触发调度程序。

如果您的函数的输出仍未出现在日志中:

  • 检查您当前的功能是否在
    custom/modules/Schedulers/Ext/ScheduledTasks/scheduledtasks.ext.php
    中。如果没有,请运行快速修复和重建。
  • 检查日志文件的文件权限
  • 检查 PHP 日志/输出是否有错误。例如。如果您已经在其他地方定义了一个名为“final_test”的函数,PHP 将由于函数名称冲突而终止并出现致命错误。
© www.soinside.com 2019 - 2024. All rights reserved.