Наша система каждый час производит различные счета-фактуры и загружает их в облако. Также можно создать счет-фактуру по требованию, нажав кнопку на нашем интерфейсе.Laravel Flysystem & Rackspace Загрузка CRON с ошибкой 401 при загрузке по запросу
При ручном запросе на создание указанного счета-фактуры он никогда не загружается. Что касается хрон генерироваться счета через некоторое время все загрузки завершится с:
Client error response
[status code] 401
[reason phrase] Unauthorized
[url] https://storage101.dfw1.clouddrive.com/v1/MossoCloudFS_930575/ <...> .pdf" @ Guzzle\Http\Exception\BadResponseException->factory
что должно означать, что маркер истек, который он, вероятно, есть. Значки Rackspace продолжаются 24 часа, но хранилище Laravel должно автоматически обновлять токен.
Теперь здесь некоторые интересные факты:
1) Каждый раз, когда наш код развернут с Capistrano маркер, кажется, чтобы получить обновилась и хрон загрузки снова работать в течение некоторого времени. Важно отметить, что каждый раз развертывание создает новую папку, похожую на эту /releases/201605190925
, вытягивает код, устанавливает зависимости с нуля и, если все пойдет хорошо, символизирует эту папку с показателем Apache.
2) рабочие места Laravel получить обрабатываются на другом процессе, чем WWW-данных
3) Это трудно отследить, если после развертывания загрузка работает более 24 часов или нет. Я подозреваю, что иногда это работает больше, чем это. Но трудно отследить, так как не каждый час есть счета-фактуры, которые необходимо создать. Есть больше разработчиков, которые развертывают, чем только я и т. Д.
4) Когда cron терпит неудачу, и я получаю уведомление об отказе, я могу немедленно сдать и успешно сгенерировать счет-фактуру. После этого cron все еще терпит неудачу. Таким образом, похоже, что у этих двух экземпляров есть разные токены.
5) Кэш очистки с php artisan cache:clear
, кажется, не имеет никакого влияния
6) Возможно, попробовал перезапустить службу Apache, но без результатов
Поскольку это продолжается уже в течение некоторого времени я испытал разные вещи и даже связались с Rackspace в какой-то момент, но они не могли найти ничего странного с их конца ... Напомнил мне просто поймать ошибку 401, обновить токен и повторить попытку. Но Laravel и Flysystem должны обрабатывать их где-то сами по себе.
Поскольку у кого-то еще нет подобных проблем с Flysystem или Laravel или Rackspace, я подозреваю, что это какая-то уникальная проблема с процессом cron. Я просто надеялся, что скоро у нас будет обновленная версия нашей системы, и проблема просто исчезнет. На данный момент он все еще находится в разработке и может занять еще один месяц.
Не думаю, что это связано с кодом, но в любом случае здесь линия загрузки:
Storage::put($folder . '/' . $filename, file_get_contents($filePath));
Вот наш конфиг:
'default' => 'rackspace',
'disks' => [
'rackspace' => [
'driver' => 'rackspace',
'username' => ' ... ',
'key' => ' ... ',
'container' => ' ... ',
'endpoint' => 'https://identity.api.rackspacecloud.com/v2.0/',
'region' => 'DFW',
]
]
Любые мысли по этому вопросу будут оценены ,
Благодарим за обновление. Я в настоящее время также испытываю различные вещи с проблемой. Наш cron работает каждый час, и я попытался объединить 'hasExpired' и' authenticate' без результатов. 'hasExpires', кажется, возвращает false каждый раз. Когда я пытался записывать токен с помощью cron (каждую минуту), я получал разные результаты каждый раз. Не уверен, если это уместно. '$ Client-> getToken()' –