小编Ero*_*618的帖子

如何在线程中使用 Telethon

我想在后台运行一个函数。所以我在我的代码中使用线程。

但是返回错误ValueError: signal only works in main thread并且不知道两件事:

  1. 什么是主线程
  2. 如何解决这个问题呢 :)

views.py

def callback(update):
    print('I received', update)

def message_poll_start():
    try:
        client = TelegramClient('phone', api_id, api_hash,
            update_workers=1, spawn_read_thread=False)
        client.connect()
        client.add_update_handler(callback)
        client.idle()
    except TypeNotFoundError:
        pass

def message_poll_start_thread(request):
    t = threading.Thread(target=message_poll_start, args=(), kwargs={})
    t.setDaemon(True)
    t.start()
    return HttpResponse("message polling started")
Run Code Online (Sandbox Code Playgroud)

urls.py

urlpatterns = [
    path('message_poll_start', messagemanager_views.message_poll_start_thread, name="message_poll_start"),
]
Run Code Online (Sandbox Code Playgroud)

trace

[12/Jan/2018 11:24:38] "GET /messages/message_poll_start HTTP/1.1" 200 23
Exception in thread Thread-3:
Traceback (most recent call last):
  File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
    self.run() …
Run Code Online (Sandbox Code Playgroud)

python django telethon

8
推荐指数
1
解决办法
2394
查看次数

标签 统计

django ×1

python ×1

telethon ×1