на главную    
     
 
  Достоверность и актуальность информации | Содержание | Менеджеры  
   
 

Практическая часть. Основные принципы
Приоритеты задач


Можно выделить следующие основные принципы работы с КЭШем:

  1. Кэширование будет происходить по запросам клиентов. Если при очередном запросе на разрешение ip-адреса в КЭШе нет необходимой или достоверной информации – то тогда обращаться по whois протоколу к БД RIR, выдавать ответ клиенту и добавлять запись в КЭШ. Если такая информация имеется – то выдавать ответ клиенту напрямую из КЭШа.
  2. Записи будет соответствовать некоторый временной параметр («время жизни»), по истечении которого superTask будет обновлять информацию по данной записи.

Определим ещё две процедуры, необходимость которых непосредственно следует из пункта (1):

  • Добавление задачи. Процедура должна проверять наличие необходимой и достоверной информации по данному ip адресу в КЭШе. В зависимости от этого – добавлять новую задачу для разрешения или нет.
  • Выполнение задачи (doTask) – это получение данных непосредственно из БД whois сервера и запись полученного ответа в КЭШ.

Задача – это запрос от клиента, ответ на который не содержится в КЭШе. Задачи хранятся в Списках Задач. Задача добавляется в Список, соответствующий текущему дню. Т.е. при добавлении необходимо проверить, нужно ли создавать новый Список Задач. Так же задачи могут создаваться процедурой superTask.

Когда имеется некоторое количество задач, нужно определиться, какую именно задачу выполнять. Для этого задачи разделены по приоритетам. Наивысший приоритет у задач, поступивших от клиентов (он равен единице). Приоритет 3 имеют задачи, добавленные процедурой superTask.

Если поступивших задач окажется очень много, то некоторые задачи окажутся неразрешёнными в течении какого-то промежутка времени. Т.е. клиент может не дождаться ответа. Соответственно, приоритет таких задач нужно понижать. Для этих целей будет использоваться менеджер приоритетов (manPrior) – он будет понижать приоритет задач, не разрешённых за определённый промежуток времени (timeout), до значения, равного 5.

Процедура выполнения задачи должна учитывать тот факт, что за определённое количество времени можно совершить только несколько запросов к одному whois о персональной информации. Для того, чтобы отслеживать, сколько запросов было проведено к конкретному whois серверу я определяю менеджера whois (manWhois). Он также будет отмечать, когда whois вновь будет доступен для запросов.

 
     
  Достоверность и актуальность информации | Содержание | Менеджеры