我正在尝试使用
中的文档在 SugarCRM 中创建自定义调度程序我已在路径 ./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 开发自定义调度程序的正确教程?
注意:我已将调度程序设置为每分钟运行
我猜你的调度程序根本没有运行。 (您的“外部”消息可能只会在文件加载时才会进入日志)
确保您的 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
中。如果没有,请运行快速修复和重建。