timo-71

Рейтинг
63
Регистрация
19.09.2018
timo-71 #:
БД надо.

Другое дело, когда исполнить.

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))

-----

Пардон за офф, но выше уже  ведь выяснили самую крутую кмс

Aisamiery #:
не ходит каждый раз в БД чтоб сделать страничку с текстом,

БД надо.

метрика-0

но,

b38abb6f-bac0-4190-9daf-90cef21fb74f    Бавария Нюрнберг        49.4631 11.0349 78.47.192.0/20  None
Какие то данные о юзере есть.  Это я если че, в координатах [
49.4631 11.0349

], через впн правда. Но, и какие то другие данные, тоже есть

 

Aisamiery #:
В этом самый смак, конкуренция, она заставляет делать всякие новые вещи быстрее

Там нет такой задачи. Много слов про крутость идеи, которую никто не понял.

Но, ни где  не сказано, как будут решаться большие хмл. А в тему по задачке чтения больших файлов побайту  не пришел.  Как и в тему по алгоритму поиска чего то там в массиве. При этом, утверждает, что

ArbNet #:
алгоритмы и логика это моё, а не ваше.
ArbNet #:
А вы за столько лет даже не в состоянии понять для чего я XML использую

Темка тут где то есть, типа конкурс, про построчное  чтение, дантфорч, пардон, если напутал имя, открыл. 

ArbNet #:
Если уж не можете понять для чего я использовал XML в фреймворке

Конечная цель всеми уже используется лет 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, вполне себе.

------

Пересмотрите отношение к оппонентам и не грубите:

ArbNet #:

ЗЫ. Если уж не можете понять для чего я использовал XML в фреймворке, то до задумки моего проекта вообще мозгов не хватит.

Dram #:

22.10 НЕ работал, в 15.15 НЕ работал, а если уже 22.21 или 12.40 например -то можно

А ваше "проще" просто убило ))))  Вместо 1 строки - 10 ?

Пардон, не верно понял задачу. Показалось  диапазон только к 22 часам относится.

Проще - не всегда меньше строк.

zyubr #:
чото какая-то сложная малопонятная ужасть

Да просто все заводим failtime, в терминах php  [ ['плохой час', 'плохая минута начало', 'плохая минута конец'], ... ]

если текущее время туда попало, то исключение. Если нет то дальше работаем.

А с if и 100500 and точно запутаетесь.

timo-71 #:
Что бы это

Чуть нот ин и ин напутал. :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

Dram :
and now.hour != 15 and now.hour != 22 and now.minute >= 20:

У вас условия сработает когда все and тру. Т.е когда  now.hour = 14 а минут 12 (<20) не сработает

Проще надо. Что то типа того

from datetime import datetime


now = 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!')

Что бы это

$ python /home/py39/amtl_app/util/catload.py
now.time 22:03:54.923257
failtime:  [(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
Dram :

выдавали примерно одинаковое время в РАЗЫ проигрывающее обычному курлу. Так что не так?

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";
Всего: 541