[Cascavel-pm] Agendador de tarefas

Luis Campos de Carvalho monsieur_champs em yahoo.com.br
Terça Junho 14 20:19:08 PDT 2005


--- Igor Sutton Lopes <igor em izut.com> escreveu:
> >   Boa implementação.
> >   Mas cuidado: você está preparado para ter mais de uma versão do programa
> > rodando ao mesmo tempo? Ou, em outras palavras: ele é "thread-safe"?
> >   Pense nisso ;-)
> 
> Realmente, utilizando $SIG{ALRM} não se tornará thread-safe. Seria ideal mesmo 
> calcular o tempo de espera para a próxima execução. Isso resolveria o 
> problema de modularização também. Valeu pela dica, amanhã a noite irei 
> implementar um POC com a sua dica :) Terei que pensar também como fazer para 
> dois jobs poderem ser executados ao mesmo tempo... Vou pedir outra dica: o 
> que seria melhor: utilizar fork() ou threads para executar os jobs? fork() 
> clona o processo, porém processo pai e filho não se comunicam (senão por IPC, 
> acho eu). E threads, eu nunca consegui (nem tentei direito, fica de tema de 
> casa) comunicar os processos. Alguma idéia?

  Nem todos os interpretadores Perl no mercado suportam threads.
  Particularmente, eu prefiro fork().
  Claro, isso tem desvantagens, mas não é impossível.
  Quanto você precisa se comunicar com o processo pai?
  Pode usar kill() e os sinais "de usuário" para isso, implementando handlers assícronos
registrados no processo-pai com "$SIG{<id_do_sinal>} = sub{ ... };".

  Espero que isso ajude também.
  Se ainda assim ficar complicado, podemos fazer um brain-storm no encontro social, neste
sábado...
  Putamplexos e boa sorte!

--
Luis Campos de Carvalho
Member of "São Paulo Perl Mongers",
Unix SysAdmin & OCP/DBA Oracle
http://br.geocities.com/monsieur_champs/


	
	
		
____________________________________________________
Yahoo! Mail, cada vez melhor: agora com 1GB de espaço grátis! http://mail.yahoo.com.br


Mais detalhes sobre a lista de discussão Cascavel-pm