Другое дело, когда исполнить.
from aiojobs.aiohttp import spawn #........ async def job_coro(request:Request): await session_save(request) await dict_to_redis(request) #........... @middleware async def req_prepare_middleware(request:Request, handler:Callable): #........... await spawn(request, job_coro(request))
-----
Пардон за офф, но выше уже ведь выяснили самую крутую кмс
БД надо.
но,
b38abb6f-bac0-4190-9daf-90cef21fb74f Бавария Нюрнберг 49.4631 11.0349 78.47.192.0/20 None
49.4631 11.0349
], через впн правда. Но, и какие то другие данные, тоже есть
Там нет такой задачи. Много слов про крутость идеи, которую никто не понял.
Но, ни где не сказано, как будут решаться большие хмл. А в тему по задачке чтения больших файлов побайту не пришел. Как и в тему по алгоритму поиска чего то там в массиве. При этом, утверждает, что
Темка тут где то есть, типа конкурс, про построчное чтение, дантфорч, пардон, если напутал имя, открыл.
Конечная цель всеми уже используется лет 10 как, документ хтмл лучше всего описывается объектом/ассоциативным массивом/диктом и т.д
{'th': '/2/22/2295bd81cdef696d-320.jpeg', 'webp_th': '/2/22/2295bd81cdef696d-320.webp', 'webp': '/2/22/2295bd81cdef696d.webp'}{'_id': 'ad376ee3-05d7-11e4-acff-001517af5371', 'image': {'osnovnaya': ['/7/71/71c51ddd082cf168.jpeg']}, 'img_dir': '/home/py39/amtl_app/static/tg/static/files/img'}
Неясно было, зачем XML, когда есть куча nosql(mongo/...), redis(hset), да и реляционные бд в json умеют (pg: select * from json_each('{"a":"foo", "b":"bar"}') ). Да и просто json из txt, вполне себе.
------
Пересмотрите отношение к оппонентам и не грубите:
ЗЫ. Если уж не можете понять для чего я использовал XML в фреймворке, то до задумки моего проекта вообще мозгов не хватит.
22.10 НЕ работал, в 15.15 НЕ работал, а если уже 22.21 или 12.40 например -то можно
А ваше "проще" просто убило )))) Вместо 1 строки - 10 ?
Пардон, не верно понял задачу. Показалось диапазон только к 22 часам относится.
Проще - не всегда меньше строк.
Да просто все заводим failtime, в терминах php [ ['плохой час', 'плохая минута начало', 'плохая минута конец'], ... ]
если текущее время туда попало, то исключение. Если нет то дальше работаем.
А с if и 100500 and точно запутаетесь.
Чуть нот ин и ин напутал. :beer
Рекомендую обратить внимание на это
try: scheduler.add_job( intervaljob, 'interval', seconds=SECONDS, max_instances=MAX_INSTANCES ) scheduler.add_job( parsecbrf, 'cron', month='*', day='*', hour=12, minute=31) scheduler.start() loop.run_forever() except (KeyboardInterrupt, SystemExit):
Просто запускается в фоне и каждые seconds будет пускать intervaljob, а в
month='*', day='*', hour=12, minute=31
запустит parsecbrf
У вас условия сработает когда все and тру. Т.е когда now.hour = 14 а минут 12 (<20) не сработает
Проще надо. Что то типа того
from datetime import datetimenow = datetime.now()print('now.time', now.time())failtime = [ (20, 0, 0), (15, 0, 0), (21, 37, 47), ]print('failtime: ', failtime)for fail in failtime: l = range(fail[1], fail[2]) if fail[1]<fail[2] else (fail[1],) print('Test for hour %s and minute: %s in %s' % ( now.hour, now.minute, l) ) if now.hour==fail[0] and now.minute in l: raise Exception("Now time in failtime h:%s;min_min:%s;min_max:%s" % fail) print('Good year!')
Что бы это
now.time 22:03:54.923257failtime: [(20, 0, 0), (15, 0, 0), (22, 37, 47)]Test for hour 22 and minute: 3 not in (0,)Test for hour 22 and minute: 3 not in (0,)Test for hour 22 and minute: 3 in range(37, 47)Traceback (most recent call last): File "/home/py39/amtl_app/util/catload.py", line 25, in <module> raise Exception("Now time in failtime h:%s;min_min:%s;min_max:%s" % fail)Exception: Now time in failtime h:22;min_min:37;min_max:47
выдавали примерно одинаковое время в РАЗЫ проигрывающее обычному курлу. Так что не так?
2 цикла с
$mrc = curl_multi_exec($multi, $active);
Ну вот такая, конструкция дает 6 сек
'https://www.shtory-star.ru/catalogue/rasprodaga/korotkij-tyul-dlya-kuhni-kt-7-rasprodazha', 'https://www.shtory-star.ru/catalogue/rasprodaga/korotkij-tyul-dlya-kuhni-kt-9-rasprodazha',);$mh = curl_multi_init();foreach($urls as $k => $v){ $ch[$k] = curl_init($v); curl_setopt($ch[$k], CURLOPT_RETURNTRANSFER, true); curl_setopt($ch[$k], CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch[$k], CURLOPT_SSL_VERIFYHOST, false); curl_multi_add_handle($mh, $ch[$k]);}do { curl_multi_exec($mh, $running); curl_multi_select($mh);} while ($running > 0);$dom = new domDocument;libxml_use_internal_errors(true);foreach(array_keys($ch) as $k){ $status = curl_getinfo($ch[$k], CURLINFO_HTTP_CODE); $url = curl_getinfo($ch[$k], CURLINFO_EFFECTIVE_URL); if($status==200) { $html = curl_multi_getcontent($ch[$k]); $dom->loadHTML($html); libxml_clear_errors(); echo "\nTitle for: ", $url, ': ', $dom->getElementsByTagName('title')->item(0)->textContent; echo "\n=========\n"; } else { echo "\n======Fail url: ", $url, "\n"; } curl_multi_remove_handle($mh, $ch[$k]);}curl_multi_close($mh);echo "\nTime:", (microtime(1)-$t), "\n";