Есть несколько способов сделать это - вот один из них. Насколько я знаю, у Python нет механизма прерываний.
import time, datetime
timer_stop = datetime.datetime.utcnow() +datetime.timedelta(seconds=10)
while True:
if datetime.datetime.utcnow() > timer_stop:
print "timer complete"
break
Мне нравится кэшироваться в модели или слое данных также. Это изолирует все, чтобы сделать с получением данных из контроллера/представления. Можно получить доступ к кэшу ASP.NET от System.Web.HttpContext.Current.Cache
или использовать Блок Программы кэширования из Библиотеки Предприятия. Создайте свой ключ для кэшированных данных от параметров для запроса. Обязательно делайте недействительным кэш при обновлении данных.
Или можно быть независимы от HttpContext. Текущий и Кэш доступа от HttpRuntime. Кэш :)
Часто, OutputCaching может быть самым быстрым и эффективным, но только когда он отвечает Вашим требованиям. Никакой смысл в наличии быстро эффективного, если это неправильно! ;)
В этом случае, это кажется, что кэширование на слое данных корректно, потому что у Вас есть сложные потребности кэширования. Иногда, можно объединить два, если набор параметров, которые управляют тем, что производит, кэшируется, просто.