Удаление всех заданий одного типа
Используйте следующую команду (просто замените FUNCTION_NAME
):
gearman -n -w -f FUNCTION_NAME > /dev/null
Чтобы удалить только n
количество заданий, добавьте -c n
param, т. е. чтобы удалить 20 заданий:
gearman -c 20 -n -w -f FUNCTION_NAME > /dev/null
Удаление всех заданий с сервера
Если вы хотите удалить все задания, выполните следующий цикл:
for MATCH in $(echo status | nc 127.0.0.1 4730 | grep -v \\. | grep -Pv '^[^\t]+\t0\t' | cut -s -f 1-2 --output-delimiter=\,);
do
gearman -n -w -f ${MATCH%\,*} -c ${MATCH#*\,} > /dev/null;
done
Замените 127.0.0.1 4730
на свой адрес и порт сервера Gearmand.
ps: удаление заданий из постоянного хранилища (например, sqlite) не приведет к их удалению из gearmand, пока он не будет перезапущен (поскольку процесс gearmand имеет кэш в памяти)