- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
if ( ... )
{
if ( ... )
{
if ( ... )
{
usleep(250000);
}
else
{
sleep( 1 );
}
}
else
{
if ( ... )
{
if ( ... )
{
usleep( 250000 );
}
else
{
sleep( ... );
}
}
else
{
sleep( ... );
}
}
}
else
{
usleep( 250000 );
}
из главного цикла одного "рил-тайм" приложения. (комментарии, етц были удалены.)
каждый раз тестеры/кастомеры жалуются что приложение работает слишком медленно или слишком быстро - появляется либо новый if со слипом, либо новый else со слипом. за два года существования, вот до этого "полного" дерева доросло. и все равно не работает как надо. :)
Lowezar 13.08.2012 14:25 # 0
defecate-plusplus 13.08.2012 15:33 # +1
Dummy00001 13.08.2012 15:39 # 0
это из приложения скедулера. в ин-мемори базе лежит куча информации с таймстемпами (почти таймеры). эта апликуха по этой информации триггеры "сделай то/сделай это" другим приложениям через миддлваре высылает. "слишком быстро" это когда она за пару минут несколько миллионов тригеров успевает выслать, что вся остальная система пол часа только и делает что обрабатывает эти сообщения тригеры. (случает как правило тогда когда прикладуху выключали на пару дней и действий в памяти накопилось.)
defecate-plusplus 13.08.2012 15:46 # 0
просто обычно если и надо ставить, то только важные данные, которые нельзя потерять, и которые при восстановлении подсистемы обязаны быть переработаны - тогда чем быстрее, тем лучше, хоть она и будет перемалывать их полчаса (полдня)
absolut 13.08.2012 16:03 # 0
Dummy00001 13.08.2012 16:17 # +1
в некоторых случаях - да.
тут еще грабли в том что это, да, писалось для офф-лайн системы - но сегодня используется исключительно в он-лайн исталяциях.
там скорее всего вся концепция говно. почему наверное конкуренты подобной функциональности и не предлагают. (что нашему маркетингу как котам валерьянка.)