Как я могу сразу же создать вновь созданные файлы, доступные на всех серверах, или можно принудительно выполнить запрос на указанном c сервере? - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть веб-страница A, которая читает файл, и, если файл еще не существует, запрашивает другую страницу B того же веб-сайта через соединение через сокет для создания этого файла.

This закодирован в PHP, и соединение сокетов между этими двумя страницами устанавливается с stream_socket_client.

Проблема, с которой я сталкиваюсь, заключается в том, что иногда (в большинстве случаев это нормально) занимает слишком много времени (это в этом случае может занять до 1 минуты, и мне потребуется максимум несколько секунд), чтобы файл, созданный на странице B, был виден со страницы A:

  • file_exists и fopen терпит неудачу на странице A, но завершается успешно позже на странице B (я сделал clearstatcache() на обеих страницах ранее);
  • Я также могу видеть, что все другие, которые были ранее созданы, но новый присутствуют выполнив scandir;
  • , наконец, я могу подтвердить, что файл был создан до того, как я попытаюсь прочитать его со страницы A, выполнив filectime на странице B).

Когда возникает проблема, кажется, что страница дела A и страница B работают на разных серверах одного и того же веб-сайта, который размещен на общем хостинге.

Знаете ли вы:

  • , если файлы, созданные на Один сервер иногда занимает так много времени, чтобы быть видимым с другого сервера, и если, в случае плана совместного использования хоста, будет ли какое-либо решение?

  • , если возможно форсировать сокет (я использую stream_socket_client) для установки на указанный c сервер веб-сайта (я хотел бы, чтобы страница B выполнялась на том же сервере, что и страница A)?

  • любой Другая идея проблемы?

Спасибо за вашу помощь!

...