introdução a worker 2.0
TRANSCRIPT
Introdução a Worker ⚙
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! 🍺🍻