我为自己写了一个小的自动回复机器人,并使用GitHub部署到Heroku。当我运行它时,它只工作了一分钟,然后就关闭了。
这里我的代码:
import time
import telethon
from telethon import TelegramClient, events
api_id = x
api_hash = 'x'
phone_number = 998x
password = 'a'
session_file = "TelegramClient('@alixam12')"
a = 1
message = "Salom"
if a == 1:
client = TelegramClient(session_file, api_id, api_hash, sequential_updates=True)
@client.on(events.NewMessage(incoming=True))
async def handle_new_message(event):
if event.is_private:
from_ = await event.client.get_entity(event.from_id)
if not from_.bot:
print(time.asctime(), '-', event.message)
time.sleep(0.001)
await event.respond(message)
print(time.asctime(), '-', 'Bot ishlamoqda...')
with client:
client.run_until_disconnected()
print(time.asctime(), '-', 'stopped')
这是我的Procfile
:
web: python3 bot.py
我要这个机器人不停地跑在Heroku身上。
1条答案
按热度按时间wqnecbli1#
Web进程必须在分配给它们的端口上侦听HTTP请求。如果它们没有足够快地绑定到该端口,Heroku会声明它们已经崩溃。
您的应用程序不会侦听HTTP请求。因此,不应将其声明为Web进程。此类进程通常被称为“worker”:
如果您愿意,可以使用
bot
代替worker
。实际上,除了web
或release
之外的任何名称都可以。提交修改后的
Procfile
并重新部署。