PaxDaemonica.

trabalhador e servidor de aplicativos para python
Baixe Agora

PaxDaemonica. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • MIT/X Consortium Lic...
  • Nome do editor:
  • Jeffrey Jenkins
  • Site do editor:
  • http://qcircles.net

PaxDaemonica. Tag


PaxDaemonica. Descrição

Worker and Application Server para Python O PaxDaemonica é um módulo para definir um sistema para executar aplicativos com registro unificado e monitoramento, um processo extremamente simples de implantação e atualização, execução assíncrona RPC / remota. Este readme tentará documentar o que é atualmente implementado. Vou escrever posts sobre planos futuros e link para eles nas seções apropriadas, portanto, não há confusão sobre o que faz agora. Tentativa de requisitos tentou minimizar o número de requisitos externos. A partir de agora você precisa de um servidor Redis em execução na mesma máquina e da biblioteca do Python Redis (https://github.com/andymccurdy/redis-py).starting up / básico Processesto Iniciar PaxD, execute Python Paxd / Rootserver.py . Isso iniciará o servidor, o processo do controlador e uma interface da UI na porta 8000. O servidor da Web da UI é na verdade um invólucro fino ao redor de um aplicativo paxd que você encontrará em PaxD / WebUiaPP / WebUi.py. O servidor também possui um pseudo-aplicativo para o controlador que lida com os vários comandos. A instância PaxD deve ter um ID de instância exclusiva, embora atualmente haja um valor codificado em um servidor raiz. O ID exclusivo só importa quando há várias instâncias de leitura paxd da mesma fila. Ele está sendo usado para mover tarefas "ativas" para a lista de tarefas "Failed" ao carregar um aplicativo (já que na inicialização do aplicativo não pode haver nenhuma tarefa ativa, é seguro assumir que quaisquer tarefas com o ID da instância da atual O servidor foi incompleto quando o servidor desligado do servidor) .Applicationsa PaxD Application é, na sua forma mais simples, apenas uma função Python. No entanto, para carregar um aplicativo ligeiramente mais é necessário. Um aplicativo tem vários atributos principais necessários para carregá-lo: - Path - Isso é adicionado ao SYS.PATH nos processos onde o aplicativo é executado - este é o ponto.Delimiated.Name da função que deve ser chamada. Ele espera que isso seja verdade: Entry.Rpartition (''. ') == (módulo,'. ', Função) - fila - (opcional) É aí que o aplicativo receberá seus dados. Se não houver fila, todos os processos executarão seus comandos constantemente. Há outros atributos nos objetos do aplicativo, mas estes são os únicos que podem ser definidos por enquanto. Quando um aplicativo é carregado, um ID aleatório é atribuído a ele. Várias instâncias do mesmo aplicativo podem ser executadas nos comandos do servidor.server Os comandos disponíveis no servidor são: - Carregando um aplicativo. /carga. Veja scripts / load_task.py.- Pause um aplicativo. / Pause? ID = app_id- Não há um aplicativo. / não usa? ID = app_id- Remover um aplicativo. / Remover? ID = app_idhe com os três comandos inferiores estão disponíveis na Web UI.RPC / Assíncrono Executionin PaxD / Client.py Existe um decorador de tarefas que adicionará um atributo de "atraso" a uma função. O atributo é uma função que pode ser usada (como no aipo) para executar um comando de forma assíncrona. Ele envia uma mensagem em conserva para o servidor e retorna um objeto promissor que pode ser usado para recuperar o resultado, se desejado. Para que os pedidos realmente sejam processados, um aplicativo para a função decorada deve ser carregado (consulte Scripts / Load_Task.py.web uithe Web UI, iniciado na porta 8000, fornece uma lista dos aplicativos em execução e permite que eles sejam pausados , não removido. O próprio UI da Web não pode ser pausado ou removido, pois isso desabilitaria a API usada para monitorar / controlar o servidor.MessageStherherher são duas classes para solicitações a serem enviadas: uma para JSON e outra para o Python Englishling. As APIs são as mesmas. Uma solicitação requer uma conexão Redis, o nome de uma fila e os args / kwds que o alvo deve ser chamado. Cada solicitação tem um UUID que é a fila no Redis que a resposta deve ser (estas As filas só terão um item). Quando uma mensagem é enviada, ele é adicionado à fila dada no Redis. Se houver um processador livre no pool do aplicativo, ele irá: - Mova um item da fila para a fila: Pending - em um Transação, excluir o item da fila: pendente e configurá-lo na fila: Active e, um hash Redis, com um valor da instância, processo o item - em uma transação, exclua o item da fila: ativa e escreva a resposta à resposta da resposta da solicitação. O método de envio da solicitação retorna uma promessa. Se .get () for chamado sobre a promessa, ele retornará o valor ou aumentará uma exceção (se houver um erro). Requisitos: · Pitão


PaxDaemonica. Software Relacionado