Необходимо написать реализацию асинхронного АПИ на ПХП, а так же класс обертку для реализации запросов к нему на JavaScript.
Соот-но должен быть JS объект со следующим интерфейсом.
object AsyncApi {
public anyMethodName(),
public getRandomString()
}
var s = AsyncApi.getRandomString();
соот-но любой публичный метод делает запрос на сервер и получает ответ, если запрос еще выполняется, то сервер отдает ответ в JSON вида
{status: 'inprogress'}
соот-но AsyncApi выполняет запрос с определенным интервалом (допустим раз в 3 секунды) и проверяет статус ответа, до тех пор пока он не станет либо done либо error
В свою очередь при первом запросе сервер создает задачу и сохраняет ее в memcached (в тестовом задании можно сохранять в любое хранилище, в файл например), и сразу же отдает ответ {status: 'inprogress'}. И далее в фоне продолжает выполнять задание. Как только оно будет выполнено - он пишет в хранилище результат и при следующем запросе к АПИ его отдаст {status: 'done', result: {...}}
|