Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在queue job laravel中,根据我的实验,有两个不同的作业/工作进程,例如使用相同的db事务。在laravel日志上打印随机数(8位随机数)以标记2个相同或不同的进程后,我知道这一点。因此,我有两个工作进程从数据库中获得相同的数据选择。我还尝试_Php_Laravel_Postgresql_Cron_Queue - Fatal编程技术网

Php 在queue job laravel中,根据我的实验,有两个不同的作业/工作进程,例如使用相同的db事务。在laravel日志上打印随机数(8位随机数)以标记2个相同或不同的进程后,我知道这一点。因此,我有两个工作进程从数据库中获得相同的数据选择。我还尝试

Php 在queue job laravel中,根据我的实验,有两个不同的作业/工作进程,例如使用相同的db事务。在laravel日志上打印随机数(8位随机数)以标记2个相同或不同的进程后,我知道这一点。因此,我有两个工作进程从数据库中获得相同的数据选择。我还尝试,php,laravel,postgresql,cron,queue,Php,Laravel,Postgresql,Cron,Queue,在queue job laravel中,根据我的实验,有两个不同的作业/工作进程,例如使用相同的db事务。在laravel日志上打印随机数(8位随机数)以标记2个相同或不同的进程后,我知道这一点。因此,我有两个工作进程从数据库中获得相同的数据选择。我还尝试使用sleep函数(10秒)和两个cron进程锁定表,并收到了相同的问题(数据加倍)。用于更新跳过锁定是正确的还是仅用于更新锁定更安全。?谢谢 ProcessB::dispatch(from any id i have select as st


在queue job laravel中,根据我的实验,有两个不同的作业/工作进程,例如使用相同的db事务。在laravel日志上打印随机数(8位随机数)以标记2个相同或不同的进程后,我知道这一点。因此,我有两个工作进程从数据库中获得相同的数据选择。我还尝试使用sleep函数(10秒)和两个cron进程锁定表,并收到了相同的问题(数据加倍)。用于更新跳过锁定是正确的还是仅用于更新锁定更安全。?谢谢
ProcessB::dispatch(from any id i have select as string)->onQueue('queueA');
--first select data with lock
   
SELECT *
FROM tableB
WHERE is_proccesed = 0 AND id in (parameter get from job A if any)
LIMIT 1000
FOR UPDATE OF tableB SKIP LOCKED
    
-- call API with parameter value is from tableB
-- update data
UPDATE tableB SET is_proccesed = 1 where id = (from any id i have select)
UPDATE tableB SET is_proccesed = 0 where id = (from any id i have select)