Выполнение фоновой задачи PHP с помощью TideSDK

Можно ли запускать PHP-код в фоновом режиме с помощью TideSDK? Я пытаюсь загрузить файл с помощью curl в PHP. Графический интерфейс перестает отвечать во время загрузки, независимо от того, вызывает ли Javascript PHP немедленно в ответ на событие или событие используется для планирования вызова.

Javascript вызывает PHP напрямую из обработчика:

upload_file(path_to_file)

Javascript планирует вызов PHP непосредственно из обработчика:

setTimeout(function() {upload_file(path_to_file);}, 250);

Загрузка файла выполняется с помощью PHP-функции curl. Я пробовал и curl_exec(), и curl_multi_exec(). curl_multi_exec() кажется многообещающим, но пример кода постоянно вызывает curl_multi_exec().

Я рассматриваю возможность разбить этот цикл, чтобы вернуться к JS между циклами, чтобы попытаться решить проблему.


person Dave Bormann    schedule 02.01.2013    source источник
comment
Как Javascript напрямую вызывает PHP? Если вы делаете это асинхронно, это уже должно быть сделано в фоновом режиме.   -  person Waleed Khan    schedule 02.01.2013
comment
Я вызываю PHP из Javascript, следуя приведенным ниже документам TideSDK. Когда я планирую вызов PHP, пользовательский интерфейс временно реагирует, пока вызов не произойдет. tidesdk.multipart.net/docs/user-dev/generated /#!/руководство/   -  person Dave Bormann    schedule 02.01.2013
comment
@fairwinds Можно ли запускать фоновые задачи на любом из языков, поддерживаемых TideSDK (Ruby, PHP, Python)?   -  person Dave Bormann    schedule 02.01.2013


Ответы (1)


AFAIK это невозможно. Единственный способ обойти это, который я нашел, - запустить фоновый процесс с помощью Ti.Process, который в основном запускает ваш скрипт через CLI. Однако я ориентировался только на одну платформу — osx.

person meeech    schedule 02.01.2013
comment
Я попытался разорвать цикл опроса curl_multi_exec(), возвращаясь к JS между опросами. Это не сработало, потому что контекст PHP был потерян. Мне не удалось сохранить переменные между вызовами, как если бы был запущен новый стек PHP. - person Dave Bormann; 03.01.2013