powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Schedule Message в ActiveMQ
4 сообщений из 4, страница 1 из 1
Schedule Message в ActiveMQ
    #37814239
fcs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fcs
Гость
Всем привет.

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

Встал вопрос, как вернуть информацию Job'а.
Как вернуть все текущие Job, запланированные в системе.
Разобрался с тем, как вернуть JobId, но хотелось бы ещё иметь информацию о First start time и next time.
Есть идеи ?
...
Рейтинг: 0 / 0
Schedule Message в ActiveMQ
    #37815559
Фотография ivanov-void
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Schedule Message в ActiveMQ
    #37815592
fcs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fcs
Гость
Смотрю.
И код их смотрю.

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

Подскажите как добраться до JobSchedulerFacade или JobScheduler, чтобы получить эти вкусности.
...
Рейтинг: 0 / 0
Schedule Message в ActiveMQ
    #37821270
fcs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fcs
Гость
Я пока нашёл обхожусь вот таким решением:
Код: 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
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Schedule Message в ActiveMQ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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