Я хочу динамически управлять пауком извне, например, добавить или остановить, Как это исправить?
, а также в процессе класс определение self._l oop = asyncio.get_event_l oop () после стартового рейза:
File "Python38\lib\multiprocessing\spawn.py", line 102, in spawn_main
source_process = _winapi.OpenProcess(
OSError: [WinError 87] The parameter is incorrect
Почему?
Моя платформа Windows.
import asyncio
from multiprocessing import Process
class Spider(Process):
def __init__(self):
super().__init__()
self._stopped = False
def run(self):
loop = asyncio.get_event_loop()
loop.run_until_complete(self.fetching())
async def fetching(self):
while True:
if self._stopped: # not update variable
await asyncio.sleep(1)
continue
print("fetching...")
await asyncio.sleep(1)
def stop(self):
self._stopped = True
print('stop', self._stopped)
if __name__ == "__main__":
import time
s = Spider()
s.start()
time.sleep(2)
s.stop()
вывод:
fetching...
fetching...
stop True
fetching...
fetching...