0
私は60秒ごとに実行されるPHPワーカーを持っています。労働者は記事を通ってそれらを公開する。Doctrine 2 - (時々)フラッシュ時に関連するエンティティを複製します
私はリポジトリがあります
public function findAllUnpublished()
{
$query = $this->entityManager->createQuery('SELECT i FROM Extra\Item\Item i
WHERE i.status = :status')
->setParameter('status', ItemStatusEnum::UNPUBLISHED);
return $query->getResult();
}
とファサード
public function publishUnpublished()
{
$items = $this->cliRepository->findAllUnpublished();
foreach ($items as $item) {
$item->setPublish(TRUE);
$this->entityManager->persist($item);
}
$this->entityManager->flush();
$this->itemChangedObserver->notifyBatchPublished($items); // this clear cache on web server
return $items;
}
をし、ファサードと呼ばれている労働者は
public function execute()
{
$this->logger->logMessage(ILogger::DEBUG, 'Start publising');
$items = $this->itemFacade->publishUnpublished();
$itemsIds = array_map(function ($item) {
return $item->getId();
}, $items);
$this->logger->logMessage(
ILogger::DEBUG,
'Published %d items (%s)',
count($items),
implode(', ', $itemsIds)
);
$this->logger->logMessage(ILogger::DEBUG, 'End publising');
return IJob::OK;
}
問題が時々(ない毎ターン)ということである労働者関連する画像をギャラリーに複製します。
記事:
/**
* @var \Doctrine\Common\Collections\Collection
*
* @OneToMany(targetEntity="gallery", mappedBy="article", cascade={"persist", "remove"})
* @OrderBy({"position" = "ASC"})
*
*/
private $gallery;
ギャラリー:
/**
* @var \Article
*
* @ManyToOne(targetEntity="Article", inversedBy="gallery")
*/
private $article;
が、それが今まで誰かに起こったことがありますか?
いいえ私は持続性を取り除き、問題は解決しません。既存のエンティティでpersistを呼び出すかどうかは関係ありません。それはリスナーだけを呼び出すだけです。 – MakoBuk
私の編集を見てください。 – chalasr