Очередь MySQL PHP +

Методы класса для того, когда у Вас должны быть методы, которые не характерны ни для какого конкретного экземпляра, но все еще включают класс в некотором роде. Самая интересная вещь о них состоит в том, что они могут быть переопределены подклассами, что-то, что это просто не возможно в статических методах Java или функциях уровня модуля Python.

, Если у Вас есть класс MyClass, и функция уровня модуля, которая воздействует на MyClass (фабрика, тупик внедрения зависимости, и т.д.), делает его classmethod. Тогда это будет доступно подклассам.

5
задан inakiabt 6 November 2009 в 21:53
поделиться

2 ответа

Вам необходимо изменить порядок размещения заказов, чтобы не было временного окна.

Consumer POP (каждый потребитель имеет уникальный $ consumer_id)

Update queue 
set last_pop = '$consumer_id' 
where last_pop is null 
order by id limit 1;

$job = 
  Select * from queue 
  where last_pop = '$consumer_id' 
  order by id desc 
  limit 1;

Поставщик PUSH

insert into queue 
  (id, last_pop, ...) 
values 
  (NULL, NULL, ...);

Очередь упорядочена во времени столбцом id и назначается при POP идентификатору пользователя.

13
ответ дан 18 December 2019 в 13:15
поделиться

Для информации, есть еще один вариант - использовать Gearman вместо таблицы для создания очереди: Расмус Лердорф написал об этом очень хорошую статью .

1
ответ дан 18 December 2019 в 13:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: