Hyper построен поверх фьючерсного ящика и использует свою будущую модель, известную как «готовность» или «извлечение», когда значения извлекаются из фьючерсов по требованию, а в противном случае задача уведомляется , когда значение может быть готово к извлечению.
Когда poll
возвращает NotReady
, текущее задание должно зарегистрироваться для уведомления об изменении готовности, в противном случае задание может никогда не быть выполнено. Любая функция, которая возвращает Async
, должна придерживаться этого.
Другими словами, вам следует подождать, пока poll
не сможет вернуть Ready
, или уведомить текущее задание, чтобы указать, что оно готово к прогрессу, и вернуть NotReady
// notify about progress
fn poll(&mut self) -> Poll {
println!("Poll future");
if self.ready {
println!("Future ready");
return Ok(Async::Ready(()));
}
println!("Future not ready");
self.ready = true;
// The executor will poll this task next iteration
futures::task::current().notify();
Ok(Async::NotReady)
}
// wait until it is Ready
fn poll(&mut self) -> Poll {
loop {
println!("Poll future");
if self.ready {
println!("Future ready");
return Ok(Async::Ready(()));
}
println!("Future not ready");
self.ready = true;
}
}
Документы Токио [ 117] 1 2 может прояснить это.
Проблема состоит в том, что mod_python не подходит вместе с mod_wsgi. Я вошел в подобную проблему несколько недель назад, и все начало работать на меня вскоре после того, как я прокомментировал mod_python включение.
Попытайтесь искать modwsgi.org Wiki "mod_python", я полагаю, что был кто-то говорящий об этом где-нибудь в комментариях
Вот очень подробное описание о том, как интегрировать django с mod_wsgi.
Реальная проблема заключается в разрешениях на каталог журналов Apache. Необходимо указать Apache / mod_wsgi использовать альтернативное расположение сокетов UNIX, используемых для связи с процессами демона. См .:
http://code.google.com/p/modwsgi/wiki/ConfigurationIssues#Location_Of_UNIX_Sockets