Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Schedule Message в ActiveMQ / 4 сообщений из 4, страница 1 из 1
28.05.2012, 12:05:39
    #37814239
fcs
fcs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Schedule Message в ActiveMQ
Всем привет.

Начиная с 5.4 (по-моему) в ActiveMQ есть возможность задавать расписание для сообщения.
Вот тут подробнее.

Встал вопрос, как вернуть информацию Job'а.
Как вернуть все текущие Job, запланированные в системе.
Разобрался с тем, как вернуть JobId, но хотелось бы ещё иметь информацию о First start time и next time.
Есть идеи ?
...
Рейтинг: 0 / 0
29.05.2012, 03:38:53
    #37815559
ivanov-void
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Schedule Message в ActiveMQ
fcs,

Посмотрите здесь -

http://activemq.apache.org/maven/5.4.0/activemq-core/apidocs/org/apache/activemq/broker/scheduler/class-use/Job.html
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Methods in org.apache.activemq.broker.scheduler that return types with arguments of type Job
 List<Job> 	JobSchedulerFacade.getAllJobs()
           
 List<Job> 	JobScheduler.getAllJobs()
          Get all the outstanding Jobs
 List<Job> 	JobSchedulerFacade.getAllJobs(long start, long finish)
           
 List<Job> 	JobScheduler.getAllJobs(long start, long finish)
          Get all outstanding jobs due to run between start and finish
 List<Job> 	JobSchedulerFacade.getNextScheduleJobs()
           
 List<Job> 	JobScheduler.getNextScheduleJobs()
          Get all the jobs scheduled to run next
...
Рейтинг: 0 / 0
29.05.2012, 07:01:32
    #37815592
fcs
fcs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Schedule Message в ActiveMQ
Смотрю.
И код их смотрю.

На деле у меня есть объект javax.jms.Connection к удаленному брокеру.
Есть сессия, producer и consumer. Читаю и отправляю сообщения в том числе и сюда AMQ_SCHEDULER_MANAGEMENT_DESTINATION.

Подскажите как добраться до JobSchedulerFacade или JobScheduler, чтобы получить эти вкусности.
...
Рейтинг: 0 / 0
01.06.2012, 12:21:30
    #37821270
fcs
fcs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Schedule Message в ActiveMQ
Я пока нашёл обхожусь вот таким решением:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
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.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
    /**
     * Возвращает String массив со значениями next scheduled time, start scheduled time
     * next - 0 индекс массива, start - 1 индекс массива
     * @param jobMsgId - идентификатор задания
     * @return 
     */
    public static String[] getTimeScheduledAttr(String jobMsgId, String broker_name, String scheduler_name)
    {
        String[] res = new String[] { "", "" };
        try
        {
            MBeanServerConnection srCon = getMBeanServerConnection();            
            ObjectName name = new ObjectName("org.apache.activemq:BrokerName="+broker_name+",Type=jobScheduler,jobSchedulerName="+scheduler_name);
            JobSchedulerViewMBean j_sch = (JobSchedulerViewMBean) MBeanServerInvocationHandler.newProxyInstance(srCon, name, JobSchedulerViewMBean.class, true);
            TabularData tdata = j_sch.getAllJobs();            
            Set<List<?>> sts = (Set<List<?>>)tdata.keySet();
            for(List o : sts){
                if(o.get(0).equals(jobMsgId))
                {
                    CompositeData csd = tdata.get(o.toArray());
                    Object nextDate = csd.get("next");
                    Object startDate = csd.get("start");
                    res[0] = nextDate.toString();
                    res[1] = startDate.toString();
                }
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        return res;
    }

private static MBeanServerConnection getMBeanServerConnection() throws MalformedURLException
{
        final JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://[host]:[port]/jmxrmi");
        MBeanServerConnection mbsc = null;
        try {
            Map<String, String[]> env = new HashMap<String, String[]>();
            String[] credentials = new String[] { "admin", "activemq" };
            env.put(JMXConnector.CREDENTIALS, credentials);
            JMXConnector jmxc = JMXConnectorFactory.connect(url, env);
            mbsc = jmxc.getMBeanServerConnection();
        } catch (Exception ignored) {
            ignored.printStackTrace();
        }
        return mbsc;
    }
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Schedule Message в ActiveMQ / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]