Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > LWP::UserAgent и многопоточность |
Автор: artem78 2.6.2015, 19:46 | ||
Подскажите как можно осуществить, чтобы с одним экземпляром LWP::UserAgent можно было работать из нескольких потоков и чтобы у них была общая переменная с куками? Если делать так, то будет ошибка Invalid value for shared scalar.
|
Автор: Nab 2.6.2015, 22:50 |
Может лучше стоит использовать методы save($file), load($file) модуля HTTP::Cookies. |
Автор: artem78 2.6.2015, 23:34 |
Записалась в переменную одна кука, вызываю метод save, в файл записывется #LWP-Cookies-1.0 и больше ничего. |
Автор: noize 3.6.2015, 23:32 |
Используйте форки + какой-нибудь IPC::Shareable или redis для хранения кеша(кукисов) между процессами |
Автор: Nab 6.6.2015, 11:23 |
По моему тут надо по другому на задачу взглянуть. Если кука нужна чтоб сделать кучу запросов после авторизации, то и делайте авторизацию в начальном потоке, а потом форкайтесь на солько потоков сколько нужно с уже готовой кукой. Смысл в том, что получение куки для параллельных задач проще сделать в самом начале а потом уже делить на под-задачи. А вот если задача не делиться, то и шарить куку смысла нет. Когда-то я делал одну вещь с жестким контролем авторизации: там кука менялась с каждым запросом, соответственно задача к примеру автоматизировать запросы к моему сервису могла решаться только последовательно, никаких форков или еще чего. Так что может опишите задачу более широко. |