Introdução a
Worker ⚙
sergiors.com
github.com/sergiors
Dúvidas?

@serg1ors #scdevsummit
Fatal error: Allowed memory
size of …
Worker ⚙⁉
Um processo que fica
rodando, esperando por
tarefas do "usuário".
Seus workers, seus processos.
É necessário ter o controle
do servidor.
Worker Message Queue
!=
Job
Message
Queue
Worker
Qualquer tarefa (trabalho) que
deseja fazer
Responsável por gerenciar suas
tarefas. Ex: Beanstalkd, RabbitMQ,
Gearman
Executa (consome) as tarefas
Job Message Queue Worker
Processes que podem
causar latência;
Jobs diferentes,
Workers diferentes⁉
Command Pattern
pseudocode
interface CommandInterface

{

execute()

}
pseudocode
class Invoker

{

setCommand(CommandInterface $command)

run()

}
pseudocode
$user = new User(10);

$tweet = new TweetCommand(

'#beer depois do #tdc?'

$user

);

$pheanstalk->put(serialize($tweet));
pseudocode
while ($job = $queue->reserve()) {

$command = unserialize($job->getData());
try {

if ($command instanceof CommandInterface) {
$invoker->setCommand($command);

$invoker->run();
$queue->delete($job);

}
} catch (Exception $e) {

}

}
php7 👏
monolog
#protip
Serializer
max_execution_time: The default setting is
30. When running PHP from the command
line the default setting is 0.
set_time_limit(0);
😤😤😤
• posix
• pcntl
• pthreads
Process Control
Asynchronous
👊👊👊
Obrigado!
🍺🍻

Introdução a worker 2.0