Python: 如果满足特定条件,如何杀死或休眠进程?

Python: How to kill or sleep a process if a certain condition met?

我构建了一个让 运行 无限循环的抓取工具。它还在 10 多台 AWS 机器上使用代理池。我想让它看起来像如果一个 IP 命中 X 次那么它不应该再次被命中,到目前为止我使用 MySQL 是为了这个目的。问题是,如果所有代理都完成配额怎么办,我怎样才能让它休眠或延迟并在新的一天获得新的生活。现在我做了以下但最终它终止了整个程序:

def parse():
  if random_proxy == '': # ALL Proxies finished quota for the day
     raise Exception('Proxy Not Found')
   r = session.get(u, headers=headers, proxies={'https': proxy_url})

if __name__ == '__main__':
    idx = 0
    exception_string = ''
    POOL_COUNT = 50
  try:
    if conn is not None:
        links = get_links(conn, POOL_COUNT)
        if conn.open:
          conn.close()
           with Pool(POOL_COUNT) as p:
             result = p.map(parse, links)
except Exception as ex:
        print('Main program exception')

处理您的问题的一个非常简单的方法:

SLEEP_INTERVAL = 300  # 5 minutes

def parse():
    random_proxy = get_random_proxy()

    while not random_proxy:
        # ALL Proxies finished quota for the day
        time.sleep(SLEEP_INTERVAL)  
        random_proxy = get_random_proxy()

    r = session.get(u, headers=headers, proxies={'https': proxy_url})

这将阻止您的工作人员,直到有新的代理可用。