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

时间:2018-06-06 11:15:54

标签: cron scheduled-tasks crm scheduler sugarcrm

我正在尝试使用

中的文档在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

代码     

ngModel

并在路径中创建了作业功能 ./custom/Extension/modules/Schedulers/Ext/ScheduledTasks/final_test.php 代码

          <div class="form-group">
        <div>
            <p-checkbox [(ngModel)]="isFDV"  
            label="Documentation" binary="true"></p-checkbox>
        </div>
        <div *ngIf="isFDV" >
            <p-checkbox  label="doc1" binary="true"></p-checkbox>
        </div> 
        <div *ngIf="isFDV">
            <p-checkbox label="doc2" binary="true"></p-checkbox>
        </div>
     </div> 

如果我放

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

在函数外部然后运行我在日志文件中获取消息。但 当我把

<?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;
 }
?>

在功能内部,这不起作用,我也没有得到任何记录。

我做错了哪一部分?我在哪里可以获得适当的教程来为sugarcrm开发自定义调度程序?

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

1 个答案:

答案 0 :(得分: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。如果没有,请运行快速修复&amp;重建。
  • 检查日志文件的文件权限
  • 检查PHP日志/输出是否有错误。例如。如果您已经在其他地方定义了一个名为“final_test”的函数,那么由于函数名称冲突,PHP会因致命错误而终止。