8 use \Magento\Framework\MessageQueue\Lock\ReaderInterface;
9 use \Magento\Framework\MessageQueue\Lock\WriterInterface;
46 \
Magento\Framework\Stdlib\DateTime\DateTime $dateTime,
47 \
Magento\MessageQueue\Model\LockFactory $lockFactory,
51 $this->lockFactory = $lockFactory;
52 $this->interval = $interval;
62 $this->
_init(self::QUEUE_LOCK_TABLE,
'id');
70 $object = $this->lockFactory->create();
71 $object->load(
$code,
'message_code');
72 $lock->setId($object->getId());
73 $lock->setMessageCode($object->getMessageCode() ?:
$code);
74 $lock->setCreatedAt($object->getCreatedAt());
82 $object = $this->lockFactory->create();
83 $object->setMessageCode($lock->getMessageCode());
84 $object->setCreatedAt($this->dateTime->gmtTimestamp());
93 $date = (new \DateTime())->setTimestamp($this->dateTime->gmtTimestamp());
94 $date->add(
new \DateInterval(
'PT' . $this->interval .
'S'));
95 $this->
getConnection()->delete($this->
getTable(self::QUEUE_LOCK_TABLE), [
'created_at <= ?' => $date]);
saveLock(\Magento\Framework\MessageQueue\LockInterface $lock)
_init($mainTable, $idFieldName)
__construct(\Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Stdlib\DateTime\DateTime $dateTime, \Magento\MessageQueue\Model\LockFactory $lockFactory, $connectionName=null, $interval=86400)
read(\Magento\Framework\MessageQueue\LockInterface $lock, $code)