2016-07-20 3 views
0

У меня есть данные графика из Repeating Service. Как я могу разобрать формат как удобный? Это примерный формат расписания. 0 13? * MON * Пожалуйста, дайте мне знать, как я могу получить определение формата расписания.Формат данных расписания для AutoScale

спасибо.

  Repeating.Service rService = Repeating.service(client, trigger.getId()); 
      Repeating repeat = rService.getObjectForRepeating(); 

      System.out.println("repeat schedule : " + repeat.getSchedule()); 

ответ

0

Формат атрибута расписания в формате Cron.

атрибут графика:

хроны формата расписание. Это выполняется в часовом поясе UTC. Необходимое для создания Тип: строку

Следующий сценарий Java может помочь вам.

/** 
* This script retrieves the Repeating trigger policies for a SoftLayer_Scale_Policy, then 
* it gets the schedule attribute and parses the value (Cron format) to human readable format. 
* 
* Important manual pages: 
* @see http://sldn.softlayer.com/reference/services/SoftLayer_Scale_Policy/getRepeatingTriggers 
* @see http://sldn.softlayer.com/reference/datatypes/SoftLayer_Scale_Policy_Trigger_Repeating 
* 
* @license <http://sldn.softlayer.com/wiki/index.php/License> 
* @author SoftLayer Technologies, Inc. <[email protected]> 
*/ 
package SoftLayer_Java_Scripts.Examples; 

import com.softlayer.api.*; 
import com.softlayer.api.service.scale.Policy; 
import com.softlayer.api.service.scale.policy.trigger.Repeating; 

import java.util.Date; 
import java.util.List; 

import org.quartz.CronExpression; 

public class GetObjectScalePolicyTriggerRepeating 
{ 
    public static void main(String[] args) 
    { 
     // Fill with your valid data here. 
     String user = "set me"; 
     String apiKey = "set me"; 

     long scalePolicyId = 1234; 

     ApiClient client = new RestApiClient().withCredentials(user, apiKey); 

     Policy.Service service = Policy.service(client, scalePolicyId); 

     try 
     { 
     List<Repeating> result = service.getRepeatingTriggers(); 
     for(Repeating rep : result) { 
      String cronValue = rep.getSchedule(); 
      System.out.println("Original value: " + cronValue); 
      // Fixing format in order to display the schedule. 
      String patch = "* " + cronValue; 
      // Using the next library: http://www.quartz-scheduler.org/api/2.2.1/org/quartz/CronExpression.html 
      CronExpression cron = new CronExpression(patch); 
      // Returns the next date/time after the given date/time which satisfies the cron expression. 
      // (i.e. the next time it's going to be triggered) 
      System.out.println("Parsed value: " + cron.getNextValidTimeAfter(new Date())); 
     } 
     } 
     catch(Exception e) 
     { 
     System.out.println("Script failed, review the next message for further details: " + e); 
     } 
    } 
} 

Следующие ссылки содержат информацию о формате хрон:

http://www.nncron.ru/help/EN/working/cron-format.htm

http://www.quartz-scheduler.org/api/2.2.1/org/quartz/CronExpression.html

+0

Я получил неправильные данные. <Оригинальное значение cron>: 0 14? * MON * : Пн Июл 25 00:14:00 KST 2016 Время в 2 PM, но «cron.getNextValidTimeAfter (новая дата())); возвращает 14 минут. Это проблема? –

+0

Я добавил следующую строку в исходный код 'String patch =" * "+ cronValue;'. Эта линия позволяет точно видеть результат. Тем не менее, вы должны иметь в виду, что атрибут ** schedule ** используется для целей планирования и библиотеки, которую я предложил вам, является сторонней библиотекой, поэтому вам может потребоваться больше узнать об этом, чтобы сделать дальнейшая реализация. –

Смежные вопросы