如果 Schedulertask 由 cronjob 执行,则 getParentKeyFieldName() 为 null
getParentKeyFieldName() on null if Schedulertask is executed by cronjob
我分叉了扩展 sf_event_mgt 并创建了一些调度程序任务。
如果我在前端使用 userFunc 调用 execute() 或手动启动任务,一切正常。但是如果我用 /var/www/[...]/cli_dispatcher.phpsh scheduler
通过 cronjob 调用 schedulertask 我总是得到
Call to a member function getParentKeyFieldName() on null in /var/www/[...]/vendor/typo3/cms/typo3/sysext/extbase/Classes/Persistence/Generic/Mapper/DataMapper.php:447
错误似乎是在实例化这些对象后直接发生的:
$this->objectManager = GeneralUtility::makeInstance(ObjectManager::class);
$this->eventRepository = $this->objectManager->get(EventRepository::class);
$this->notificationService = $this->objectManager->get(NotificationService::class);
注释掉存储库行后,没有显示异常。
我已经清除了所有缓存并检查了 php 个注释。
已使用 PHP 版本:7.1.17 和 TYPO3 版本:7.6.30
找到解决方案:
如果安装了 php7.0-igbinary
,则 Extbase 反射缓存无法按预期工作
我分叉了扩展 sf_event_mgt 并创建了一些调度程序任务。
如果我在前端使用 userFunc 调用 execute() 或手动启动任务,一切正常。但是如果我用 /var/www/[...]/cli_dispatcher.phpsh scheduler
通过 cronjob 调用 schedulertask 我总是得到
Call to a member function getParentKeyFieldName() on null in /var/www/[...]/vendor/typo3/cms/typo3/sysext/extbase/Classes/Persistence/Generic/Mapper/DataMapper.php:447
错误似乎是在实例化这些对象后直接发生的:
$this->objectManager = GeneralUtility::makeInstance(ObjectManager::class);
$this->eventRepository = $this->objectManager->get(EventRepository::class);
$this->notificationService = $this->objectManager->get(NotificationService::class);
注释掉存储库行后,没有显示异常。
我已经清除了所有缓存并检查了 php 个注释。
已使用 PHP 版本:7.1.17 和 TYPO3 版本:7.6.30
找到解决方案:
如果安装了 php7.0-igbinary
,则 Extbase 反射缓存无法按预期工作