mirror of
https://github.com/idanoo/php-resque.git
synced 2024-11-24 09:15:15 +00:00
2.1.1 (2023-03-20) - Update setex to set, add TTL to stats
This commit is contained in:
parent
679394eb5f
commit
94cae8d271
@ -1,3 +1,7 @@
|
|||||||
|
# 2.1.1 (2023-03-20)
|
||||||
|
- Changed setex to set with EX values
|
||||||
|
- Added TTLs to missing keys
|
||||||
|
|
||||||
## 2.1.0 (2023-02-07)
|
## 2.1.0 (2023-02-07)
|
||||||
- Add PHP 8.1 / 8.2 unit tests
|
- Add PHP 8.1 / 8.2 unit tests
|
||||||
- Updated code to be PHP 8.2 compliant
|
- Updated code to be PHP 8.2 compliant
|
||||||
|
@ -59,7 +59,11 @@ class Status
|
|||||||
'updated' => time(),
|
'updated' => time(),
|
||||||
'started' => time(),
|
'started' => time(),
|
||||||
];
|
];
|
||||||
\Resque\Resque::redis()->setex('job:' . $id . ':status', 86400, json_encode($statusPacket));
|
\Resque\Resque::redis()->set(
|
||||||
|
'job:' . $id . ':status',
|
||||||
|
json_encode($statusPacket),
|
||||||
|
['ex' => time() + 86400],
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -98,12 +102,12 @@ class Status
|
|||||||
'status' => $status,
|
'status' => $status,
|
||||||
'updated' => time(),
|
'updated' => time(),
|
||||||
];
|
];
|
||||||
\Resque\Resque::redis()->setex((string)$this, 86400, json_encode($statusPacket));
|
|
||||||
|
|
||||||
// Expire the status for completed jobs after 24 hours
|
\Resque\Resque::redis()->set(
|
||||||
if (in_array($status, self::$completeStatuses)) {
|
(string)$this,
|
||||||
\Resque\Resque::redis()->expire((string)$this, 86400);
|
json_encode($statusPacket),
|
||||||
}
|
['ex' => time() + 86400],
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -29,21 +29,35 @@ class Stat
|
|||||||
*
|
*
|
||||||
* @param string $stat The name of the statistic to increment.
|
* @param string $stat The name of the statistic to increment.
|
||||||
* @param int $by The amount to increment the statistic by.
|
* @param int $by The amount to increment the statistic by.
|
||||||
* @return boolean True if successful, false if not.
|
*
|
||||||
|
* @return bool True if successful, false if not.
|
||||||
*/
|
*/
|
||||||
public static function incr($stat, $by = 1): bool
|
public static function incr(string $stat, int $by = 1): bool
|
||||||
{
|
{
|
||||||
|
// Make sure we set a TTL by default
|
||||||
|
$set = Resque::redis()->set(
|
||||||
|
'stat:' . $stat,
|
||||||
|
$by,
|
||||||
|
['ex' => time() + 86400, 'nx'],
|
||||||
|
);
|
||||||
|
|
||||||
|
// If it already exists, return the incrby value
|
||||||
|
if (!$set) {
|
||||||
return (bool)Resque::redis()->incrby('stat:' . $stat, $by);
|
return (bool)Resque::redis()->incrby('stat:' . $stat, $by);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decrement the value of the specified statistic by a certain amount (default is 1)
|
* Decrement the value of the specified statistic by a certain amount (default is 1)
|
||||||
*
|
*
|
||||||
* @param string $stat The name of the statistic to decrement.
|
* @param string $stat The name of the statistic to decrement.
|
||||||
* @param int $by The amount to decrement the statistic by.
|
* @param int $by The amount to decrement the statistic by.
|
||||||
* @return boolean True if successful, false if not.
|
*
|
||||||
|
* @return bool True if successful, false if not.
|
||||||
*/
|
*/
|
||||||
public static function decr($stat, $by = 1): bool
|
public static function decr(string $stat, int $by = 1): bool
|
||||||
{
|
{
|
||||||
return (bool)Resque::redis()->decrby('stat:' . $stat, $by);
|
return (bool)Resque::redis()->decrby('stat:' . $stat, $by);
|
||||||
}
|
}
|
||||||
@ -52,10 +66,11 @@ class Stat
|
|||||||
* Delete a statistic with the given name.
|
* Delete a statistic with the given name.
|
||||||
*
|
*
|
||||||
* @param string $stat The name of the statistic to delete.
|
* @param string $stat The name of the statistic to delete.
|
||||||
* @return boolean True if successful, false if not.
|
*
|
||||||
|
* @return bool True if successful, false if not.
|
||||||
*/
|
*/
|
||||||
public static function clear($stat): bool
|
public static function clear(string $stat): bool
|
||||||
{
|
{
|
||||||
return (bool)Resque::redis()->del('stat:' . $stat);
|
return (bool)Resque::redis()->unlink('stat:' . $stat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -491,7 +491,11 @@ class Worker
|
|||||||
public function registerWorker()
|
public function registerWorker()
|
||||||
{
|
{
|
||||||
Resque::redis()->sadd('workers', (string)$this);
|
Resque::redis()->sadd('workers', (string)$this);
|
||||||
Resque::redis()->setex('worker:' . (string)$this . ':started', 86400, date('D M d H:i:s T Y'));
|
Resque::redis()->set(
|
||||||
|
'worker:' . (string)$this . ':started',
|
||||||
|
date('D M d H:i:s T Y'),
|
||||||
|
['ex' => time() + 86400],
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -527,7 +531,12 @@ class Worker
|
|||||||
'run_at' => date('D M d H:i:s T Y'),
|
'run_at' => date('D M d H:i:s T Y'),
|
||||||
'payload' => $job->payload
|
'payload' => $job->payload
|
||||||
]);
|
]);
|
||||||
Resque::redis()->setex('worker:' . $job->worker, 86400, $data);
|
|
||||||
|
Resque::redis()->set(
|
||||||
|
'worker:' . $job->worker,
|
||||||
|
$data,
|
||||||
|
['ex' => time() + 86400],
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -14,7 +14,12 @@ class RedisTest extends TestCase
|
|||||||
{
|
{
|
||||||
public function testRedisGetSet()
|
public function testRedisGetSet()
|
||||||
{
|
{
|
||||||
$this->redis->setex("testKey", 3600, 24);
|
$this->redis->set(
|
||||||
|
'testKey',
|
||||||
|
24,
|
||||||
|
['ex' => time() + 3600],
|
||||||
|
);
|
||||||
|
|
||||||
$val = $this->redis->get("testKey");
|
$val = $this->redis->get("testKey");
|
||||||
$this->assertEquals(24, $val);
|
$this->assertEquals(24, $val);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user