introdução a worker 2.0

Post on 22-Jan-2018

228 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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! 🍺🍻

top related