mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-09 19:13:26 +00:00
PHRAS-3525 Admin can change status to canceled for multiple job (#4055)
- Can change status to canceled for multiple running jobs - Add confirm when clear table - Workers, adding try catch on recordadapter for - Delete Worker - Webhook Worker - Subdefinition Worker
This commit is contained in:
@@ -7,6 +7,7 @@ use Alchemy\Phrasea\WorkerManager\Queue\MessagePublisher;
|
||||
use DateTime;
|
||||
use Doctrine\DBAL\Driver\Connection;
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Doctrine\ORM\Query\ResultSetMappingBuilder;
|
||||
use Exception;
|
||||
use PDO;
|
||||
|
||||
@@ -391,6 +392,44 @@ class WorkerRunningJobRepository extends EntityRepository
|
||||
return $qb->getQuery()->getResult();
|
||||
}
|
||||
|
||||
public function updateStatusRunningToCanceledSinceCreated($hour = 0)
|
||||
{
|
||||
$sql = '
|
||||
UPDATE WorkerRunningJob w
|
||||
SET w.status = :canceled
|
||||
WHERE w.status = :running
|
||||
AND (TO_SECONDS(CURRENT_TIMESTAMP()) - TO_SECONDS(w.created)) > :second'
|
||||
;
|
||||
|
||||
$this->_em->getConnection()->executeUpdate($sql, [
|
||||
'second' => $hour * 3600,
|
||||
'running' => 'running',
|
||||
'canceled' => 'canceled'
|
||||
]);
|
||||
}
|
||||
|
||||
public function getRunningSinceCreated($hour = 0)
|
||||
{
|
||||
$rsm = new ResultSetMappingBuilder($this->_em);
|
||||
$rsm->addRootEntityFromClassMetadata('Alchemy\Phrasea\Model\Entities\WorkerRunningJob', 'w');
|
||||
$selectClause = $rsm->generateSelectClause();
|
||||
|
||||
$sql = '
|
||||
SELECT ' . $selectClause . '
|
||||
FROM WorkerRunningJob w
|
||||
WHERE w.status = :running
|
||||
AND (TO_SECONDS(CURRENT_TIMESTAMP()) - TO_SECONDS(w.created)) > :second'
|
||||
;
|
||||
|
||||
$q = $this->_em->createNativeQuery($sql, $rsm);
|
||||
$q->setParameters([
|
||||
'second' => $hour * 3600,
|
||||
'running' => 'running'
|
||||
]);
|
||||
|
||||
return $q->getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $commitId
|
||||
* @return bool
|
||||
|
Reference in New Issue
Block a user