Polling
Polling é um modo onde seu servidor solicita periodicamente atualizações do Telegram. Adequado para desenvolvimento e testes.
Vantagens
Seção intitulada “Vantagens”- ✅ Não requer URL pública
- ✅ Configuração simples
- ✅ Adequado para desenvolvimento
- ✅ Pode ser usado localmente
Desvantagens
Seção intitulada “Desvantagens”- ❌ Atraso no recebimento de atualizações
- ❌ Uso ineficiente de recursos
- ❌ Não recomendado para produção com alta carga
Configuração
Seção intitulada “Configuração”1. Configuração em config/hybridgram.php
Seção intitulada “1. Configuração em config/hybridgram.php”'bots' => [ [ 'token' => env('BOT_TOKEN'), 'bot_id' => 'main', 'update_mode' => UpdateModeEnum::POLLING, 'routes_file' => base_path('routes/telegram.php'), 'polling_limit' => env('TELEGRAM_POLLING_LIMIT', 100), 'polling_timeout' => env('TELEGRAM_POLLING_TIMEOUT', 0), 'allowed_updates' => explode(',', env('ALLOWED_TELEGRAM_UPDATES', '')), ],],2. Variáveis de Ambiente
Seção intitulada “2. Variáveis de Ambiente”BOT_TOKEN=your_tokenBOT_ID=mainTELEGRAM_UPDATE_MODE=POLLINGTELEGRAM_POLLING_LIMIT=100TELEGRAM_POLLING_TIMEOUT=0ALLOWED_TELEGRAM_UPDATES=message,callback_query3. Iniciando o Polling
Seção intitulada “3. Iniciando o Polling”Execução Básica
Seção intitulada “Execução Básica”php artisan hybridgram:polling mainCom Hot-reload (para desenvolvimento)
Seção intitulada “Com Hot-reload (para desenvolvimento)”php artisan hybridgram:polling main --hot-reloadO Hot-reload reinicia automaticamente o comando quando o código muda.
Com Configurações de Monitoramento
Seção intitulada “Com Configurações de Monitoramento”php artisan hybridgram:polling main \ --hot-reload \ --watch=app,routes,config,src \ --watch-interval=1Parâmetros:
--watch— diretórios a monitorar (separados por vírgula)--watch-interval— intervalo de verificação em segundos
Limitando Tipos de Atualização
Seção intitulada “Limitando Tipos de Atualização”php artisan hybridgram:polling main --allowed-updates=message,callback_queryOu na configuração:
'allowed_updates' => ['message', 'callback_query'],Opções do comando hybridgram:polling
Seção intitulada “Opções do comando hybridgram:polling”| Opção | Curto | Descrição |
|---|---|---|
--log-updates | -L | Imprimir um resumo de uma linha para cada atualização recebida |
--full | -F | Imprimir a carga completa da atualização como JSON formatado (implica --log-updates) |
--hot-reload | -R | Auto-reiniciar em mudanças de código (para desenvolvimento) |
--watch= | -W= | Caminhos separados por vírgula para monitorar (padrão: app,routes,config,src) |
--watch-interval=1 | -I | Segundos entre varreduras de arquivo no modo hot-reload |
Exemplos com aliases curtos:
php artisan hybridgram:polling main -Lphp artisan hybridgram:polling main -Fphp artisan hybridgram:polling main -R -W=app,routes -I 2Parâmetros de Polling
Seção intitulada “Parâmetros de Polling”polling_limit
Seção intitulada “polling_limit”Número máximo de atualizações por solicitação (1-100):
'polling_limit' => 100, // MáximoMais atualizações = menos solicitações, mas mais atraso.
polling_timeout
Seção intitulada “polling_timeout”Tempo limite da solicitação em segundos (0 = polling curto):
'polling_timeout' => 0, // Polling curtoPara polling longo:
'polling_timeout' => 60, // Polling longo (até 60 segundos)O polling longo reduz o número de solicitações, mas aumenta o atraso de resposta aos comandos.
Hot-reload em Desenvolvimento
Seção intitulada “Hot-reload em Desenvolvimento”O Hot-reload reinicia automaticamente o comando quando os arquivos mudam:
php artisan hybridgram:polling main --hot-reload --watch=app,routesIsso permite:
- Não reiniciar o comando manualmente
- Ver as mudanças de código rapidamente
- Desenvolvimento local conveniente
Executando via Supervisor (produção)
Seção intitulada “Executando via Supervisor (produção)”Para operação contínua em produção:
[program:telegram-polling]command=php /path/to/artisan hybridgram:polling maindirectory=/path/to/projectautostart=trueautorestart=truestopasgroup=truekillasgroup=trueuser=www-dataredirect_stderr=truestdout_logfile=/path/to/storage/logs/polling.logLimitações
Seção intitulada “Limitações”allowed_updates
Seção intitulada “allowed_updates”Limite os tipos de atualização para reduzir a carga:
'allowed_updates' => [ 'message', 'callback_query', // Apenas tipos necessários],Um Processo por Bot
Seção intitulada “Um Processo por Bot”Não execute múltiplos processos de polling para o mesmo bot simultaneamente — isso pode levar a atualizações duplicadas.
Depuração
Seção intitulada “Depuração”Logging
Seção intitulada “Logging”Para ver as atualizações recebidas no console, use -L (resumo de uma linha por atualização) ou -F (JSON completo):
php artisan hybridgram:polling main -Lphp artisan hybridgram:polling main -FExemplo de saída com -L:
Processing update 12345...Processing update 12346...Verificação de Status
Seção intitulada “Verificação de Status”Verifique se o polling está funcionando:
ps aux | grep "hybridgram:polling"Transição de Polling para Webhook
Seção intitulada “Transição de Polling para Webhook”Quando pronto para produção:
-
Configure o webhook:
Terminal window php artisan hybridgram:set-webhook main -
Pare o polling:
Terminal window # Localize e interrompa o processopkill -f "hybridgram:polling" -
Delete o webhook (se precisar voltar ao polling):
Terminal window php artisan hybridgram:delete-webhook main
Recomendações
Seção intitulada “Recomendações”Para Desenvolvimento
Seção intitulada “Para Desenvolvimento”- ✅ Use hot-reload
- ✅ Limite
allowed_updatesapenas aos tipos necessários - ✅ Use
polling_limit = 10-20para resposta rápida
Para Produção
Seção intitulada “Para Produção”- ❌ Não é recomendado usar polling em produção
- ✅ Use webhook em vez de polling
- ✅ Se necessário, use polling longo com tempo limite
Quando Usar Polling
Seção intitulada “Quando Usar Polling”Use polling quando:
- Desenvolvendo o bot localmente
- Testando funcionalidade
- Sem capacidade de configurar HTTPS
- Baixa carga e sem atrasos críticos
Não use polling quando:
- Ambiente de produção
- Alta carga
- Atrasos críticos de atualização
- Desempenho máximo necessário
Próximos Passos
Seção intitulada “Próximos Passos”- Webhook — modo recomendado para produção
- Envio de Mensagens — trabalhando com TelegramBotApi