1. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!
    Скрыть объявление

Ошибка при работе с API

Тема в разделе "Техническая поддержка", создана пользователем Al, 3 янв 2016.

  1. Al

    Al A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    25 окт 2014
    Сообщения:
    28
    Симпатии:
    10
    После написания нескольких кастомных парсеров чере Net::Http появился следующий баг: если отправить подряд несколько запросов по одному пресету, то и выполнения задачи и результаты как бы склеиваются и в результате некоторых файла оказываются и соседние запросы тоже. По моим наблюдениям ошибка возникает, когда в пресете используется переменная $query.orig.

    Запросы отправляю и получаю следующим кодом:
    my $parser = AParser->new('http://localhost:9091/API', 'password');
    my($taskUid, $error) = $parser->addTask('20-threads-proxy', $transform, 'text', [$input]);
    if($taskUid)
    {
    $parser->waitForTask($taskUid);
    my $url=$parser->getTaskResultsFile($taskUid);
    my $content = get $url;
    ...
    ...
    }
     
  2. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.547
    Симпатии:
    2.164
    Скорее всего проблема в том, что возможно где-то допущена ошибка (в коде или задании) и сохранение результатов идет в один и тот же файл. Или запросы отправляются по несколько штук в секунду, что при использовании стандартного формата имени файла $datefile.format().txt дает одинаковый файл, в который пишутся результаты из разных заданий. В таком случае можно в имя файла дописывать запрос, или другую информацию, чтобы сделать его более уникальным. Например:
    Код:
    $query_$datefile.format().txt
     

Поделиться этой страницей