escorreduras

drenagem baseada em eventos da saída do processo
Baixe Agora

escorreduras Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • BSD License
  • Preço:
  • FREE
  • Nome do editor:
  • Vincent Driessen
  • Site do editor:
  • http://datafox.nl

escorreduras Tag


escorreduras Descrição

Drenagem baseada em eventos de saída de processo As escorreduras são uma abstração em torno do subprocesso.popen para ler e controlar o evento de saída do processo-wise.drainers também permite abortar processos em execução com graciosamente ou com força, sem precisar interagir diretamente com os processos ou threads mesmos. Wrapper do controlador em torno do subprocesso.popen e, portanto, leva todos os parâmetros (opcionais) que o inicializador do subprocesso. Por exemplo, o drenagem mínimo recebe uma matriz de comando: De drenagens importação de drenagemdef ignore_event (linha, is_err): passmy_drainer = drenagem (, read_event_cb = ignore_event) my_drainer.start () mas, argumentos extras são permitidos, também: my_drainer = drenagem (, shell = true, bufsize = 64, read_event_cb = ignore_event) my_drainer.start () os únicos dois argumentos a drenagem que são reservados são STDOUT e STDARR . O dreno exige que eles sejam subprocess.pipe explicitamente, e os coloca para você em conformidade.Definando uma força de um callbackdroiner está no fato de que cada linha que é lida a partir da saída padrão do processo ou fluxos de erro padrão leva a uma função de retorno de chamada sendo invocada. Isso permite que você processe praticamente qualquer saída de processo ', desde que seja baseado em linha. A função de retorno de chamada pode ser especificada usando o parâmetro Read_Event_CB para o construtor, como visto no exemplo acima. É obrigatório. A função de retorno de chamada especificada precisa ter uma assinatura específica: Def my_callback (linha, is_err): ... deve levar dois parâmetros: linha (uma string) e is_err (um booleano). Este último indica que a linha é lida a partir do fluxo de erro padrão. Não há mais nada para isso. Não precisa devolver nada: seu valor de retorno será ignorado. Seu retorno de chamada pode ser um método de classe, como no exemplo a seguir. Observe que, nesses casos, você passa foo.my_method como o valor para o parâmetro read_event_cb: classe MyClass (objeto): def my_method (auto, linha, is_err): ... foo = myclass () my_drainer = drenagem (, read_event_cb = foo.my_method) my_drainer.start () A granularidade atualmente é uma única linha. Se você quiser ler pedaços de dados predefinidos, por favor, empenhasse este repo e implemente uma subclasse de drenagem. Se você quiser um retorno de chamada que não seja chamado após cada linha lida, mas depois de um tempo arbitrário ou quantidade de linhas, você tem que implementar isso sozinho. (Não deve ser muito difícil, no entanto. Consulte o diretório de exemplos para inspiração.) A aborção de processosdrainer permite abortar um processo de execução no meio da execução, enviando com força a mensagem de um processo (equivalente) de um sigterm do UNIX mensagem) quando surge uma determinada condição. Por padrão, o processo nunca será rescindido anormalmente. Para especificar critérios de rescisão, implemente uma função de retorno de chamada que não leva parâmetros e retorna true se o aborto for desejado e falso. Por exemplo, para um processo de longo prazo, você pode querer encerrá-lo se o disco estiver recebendo (quase) cheio. Mas verificando quanto espaço livre pode ser uma operação longa, então você pode querer fazer isso apenas com moderação: def out_of_diskspace (): left = handytools.check_disk_free () total = handytools.check_disk_total () Return (esquerda / total) <0,03 # O dreno a seguir executa o cruncher e verifica se o disco # é (quase) cheio a cada 5 segundos. Aborta se o espaço livre em disco é executado # abaixo de 3% .my_drainer = drenagem (, read_event_cb = ignore_event, deve_abort = out_of_diskspace, check_interval = 5.0) exitcode = my_drainer.start () O exemplo é bastante auto-explicativo. Você pode verificar o exitcode para ver o resultado do processo. Requisitos: · Pitão


escorreduras Software Relacionado

OSTRI.

Um objeto semelhante a uma string com os métodos do Cython Optimized Match () e Sub () ...

55

Download