[/g3]
Перейти к свойствам вашего проекта (с помощью Alt + Enter или righ-click)
проверить на Apache Tomcat v7.0 под целевым временем выполнения и работает.
Hyper построен поверх фьючерсного ящика и использует свою будущую модель, известную как «готовность» или «извлечение», когда значения извлекаются из фьючерсов по требованию, а в противном случае задача уведомляется , когда значение может быть готово к извлечению.
Когда poll
возвращает NotReady
, текущее задание должно зарегистрироваться для уведомления об изменении готовности, в противном случае задание может никогда не быть выполнено. Любая функция, которая возвращает Async
, должна придерживаться этого.
Другими словами, вам следует подождать, пока poll
не сможет вернуть Ready
, или уведомить текущее задание, чтобы указать, что оно готово к прогрессу, и вернуть NotReady
// notify about progress
fn poll(&mut self) -> Poll<Self::Item, Self::Error> {
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<Self::Item, Self::Error> {
loop {
println!("Poll future");
if self.ready {
println!("Future ready");
return Ok(Async::Ready(()));
}
println!("Future not ready");
self.ready = true;
}
}
Документы Токио [ 117] 1 2 может прояснить это.