Ошибка возникает только тогда когда запускаю скрипт в виде демона .service
#!/bin/bash
cd "$(dirname "$0")"
exec python main.py
efibootmgr -c -L Grub -d /dev/sdX -p Y -l /EFI/grub/grubx64.efi
(X и Y зависят от системы). from requests import Session
from proxy_randomizer import RegisteredProviders
rp = RegisteredProviders()
rp.parse_providers()
def get_session(proxy):
session = Session()
proxy = rp.get_random_proxy().get_proxy()
session.proxies = {'http': 'http://' + proxy}
return session
for i in range(5):
r = get_session(proxy)
try:
print("Request page with IP:", r.get("http://icanhazip.com", timeout=1.5).text.strip())
except Exception as e:
continue
Не могут.
Короче твой вариант это по классу на каждый чих.
MySQLdb.connect(host="localhost", user="username", passwd="password", db="database")
, чтобы подключиться к базе на другом устройстве меняете localhost на ip этого устройства (также подключения с других устройств надо разрешить в конфигах бд). Вообще почти все бд могут работать по сети с несколькими программами одновременно.И как мне запустить несколько воркеров, если они будут выполняться по крону?
async def main():
tasks = []
while True:
if len(tasks) < 10000: # ограничение на кол-во одновременных запросов
url = await get_url_from_db() # можно использовать и синхронную бд, обычно запросы к ней не занимают много времени, но с async будет быстрее
task = asyncio.create_task(make_request(url))
tasks.append(task)
else:
await asyncio.sleep(10) # наши задачи не работают, пока мы не делаем await, поэтому дадим запросам обработаться
i = 0
while i < len(tasks): # во время for нельзя удалять элементы из массива, поэтому делаем так
task = tasks[i]
if task.done():
del tasks[i]
print(task.result())
else:
i += 1
# теперь в tasks лежат только те запросы, которые еще не завершились
ПС раз есть тпм, то скорее всего есть и vt, значит виртуалка будет работать почти как же быстро, как и основная ос.