Примеры вещей, которые используют опрос в этот день и возраст:
- Email клиентов опрос на наличие новых сообщений (даже с IMAP).
- Опрос читателей RSS для изменений в каналах.
- Опрос поисковых систем для внесения изменений на страницы, которые они индексируют.
- Опрос пользователей StackOverflow для новых вопросов, нажав 'refresh' ;-)
- Клиенты Bittorrent опросили трекер (и друг друга, я думаю, с DHT) для изменений в рое.
- Spinlocks на многоядерных системах может быть наиболее эффективной синхронизацией между ядрами, в случаях, когда задержка слишком короткая, чтобы было время запланировать еще один поток на этом ядре, прежде чем другое ядро сделает все, что мы ожидаем ,
Иногда просто невозможно получить асинхронные уведомления: например, чтобы заменить RSS системой push, сервер должен знать всех, кто читает фид, и иметь способ связаться с ними. Это список рассылки - именно одна из тех вещей, которые RSS был разработан, чтобы избежать. Отсюда тот факт, что большинство моих примеров - это сетевые приложения, где это, скорее всего, будет проблемой.
Другие времена, опрос достаточно дешев, чтобы работать даже там, где есть асинхронное уведомление.
Для локального файла уведомление об изменениях, вероятно, будет лучшим вариантом в принципе. Например, вы могли бы (возможно) предотвратить дисковое вращение вниз, если вы навсегда его подталкиваете, хотя тогда ОС может кэшировать. И если вы каждый месяц прогоняете файл, который меняется только один раз в час, вы можете без необходимости занимать 0,001% (или что-то еще) от вычислительной мощности вашей машины. Это звучит крошечно, но что происходит, когда есть 100 000 файлов, которые нужно опросить?
На практике, однако, накладные расходы, по всей вероятности, будут незначительными в зависимости от того, что вы делаете, что затрудняет возбуждение изменения кода, который в настоящее время работает. Лучше всего следить за конкретными проблемами, которые возникают в результате опроса в системе, которую вы хотите изменить, - если вы обнаружите, что затем поднимите их, а не попытайтесь сделать общий аргумент против всех опросов. Если вы его не нашли, то вы не можете исправить то, что не сломано ...
FYI: Remoting и WCF делают опрос. – 2008-11-26 12:27:17
В определенной степени да, но не таким же образом, в котором некоторые разработчики явно используют опрос, то есть опрос базы данных каждую минуту. – HAdes 2008-11-26 23:18:52
У меня такая же ситуация, когда я несколько раз опросил несколько точек ftp, чтобы получить обновленный файл, что было бы оптимальным способом справиться с ситуацией? – Rachel 2012-02-05 20:19:48