我注意到,当我有一个没完没了的工作人员时,我无法分析php shell脚本。因为当它被杀死的时候它不会发送探测器。
我该怎么做?
最佳答案
当你试图描述一个正在运行无止境循环的工人时。在这种情况下,您必须手动编辑代码以删除无止境循环,或者插入代码以手动调用探测器的close()方法(https://blackfire.io/doc/manual-instrumentation)。
这是因为只有在调用close()方法时才会将数据发送给代理(除非您终止了它,否则在程序结束时会自动调用它)。
您可以使用BlackFire探针附带的BlackFireProbe类手动插入一些代码:
// Get the probe main instance
$probe = BlackfireProbe::getMainInstance();
// start profiling the code
$probe->enable();
// Calling close() instead of disable() stops the profiling and forces the collected data to be sent to Blackfire:
// stop the profiling
// send the result to Blackfire
$probe->close();
与自动检测一样,仅当代码通过companion或blackfire cli实用程序运行时,分析才会处于活动状态。如果不是,则所有调用都转换为noops。