Неуправляемый кварц Spring потоков Websphere в спящем режиме

Я думаю, что самое простое решение - использовать вложенный гибкий контейнер, где вы можете положиться на flex-grow:1, чтобы ваш элемент заполнил оставшееся пространство:

* {
  box-sizing: border-box;
}

.h100 {
  flex-grow:1; /*fill the remaining space*/
  display: flex;
  flex-direction: column;
  align-items: flex-start; /*avoid stretch effect on button*/
  width:100%; /*make the div 100%*/
}

body {
  margin: 0;
  height: calc(100vh - 4em); /*Here you need calc to remove padding*/
  padding: 2em;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

button {
  flex-shrink:0; /*avoid button shrinking*/
}
<body style="height: 100vh !important; margin: 0px; padding: 2em">
  <button>test button</button>
  <button>test button</button>
  <button>test button</button>
  <div class="h100" style="background-color: red;padding: 2em">
    <button>test button</button>
    <button>test button</button>
    <button>test button</button>
    <div class="h100" style="background-color:blue;padding: 2em">
      <button>test button</button>
      <button>test button</button>
      <button>test button</button>
      <div class="h100" style="background-color:yellow">
        test yellow
      </div>
    </div>
  </div>
[ 117]

6
задан erickson 9 February 2009 в 18:46
поделиться

3 ответа

У нас есть рабочее решение для этого (два на самом деле).

1) Измените кварцевый исходный код для использования потока демона WorkManager для основного потока планировщика. Это работает, но требует изменяющихся кварт. Мы не использовали это, хотя, так как мы не хотели, поддерживают взломанную версию кварца. (Который напоминает мне, я собирался отправить это проекту, но полностью забыл),

2) Создайте WorkManagerThreadPool, который будет использоваться в качестве кварцевого пула потоков. Реализуйте интерфейс для кварца ThreadPool, так, чтобы каждая задача, которая инициирована в кварце, была перенесена в объект Работы commonj, который будет затем запланирован в WorkManager. Ключ - то, что WorkManager в WorkManagerThreadPool должен быть инициализирован, прежде чем планировщик запущен от Java поток EE (такой как инициализация сервлета). WorkManagerThreadPool должен затем создать поток демона, который справится со всеми запланированными задачами путем создания и планирования новых объектов Работы. Таким образом, планировщик (на его собственном потоке) передает задачи управляемому потоку (демон Работы).

Не простой, и к сожалению у меня нет кода легко доступным для включения.

10
ответ дан 8 December 2019 в 05:24
поделиться

Проверьте эту статью: http://www.ibm.com/developerworks/websphere/techjournal/0609_alcott/0609_alcott.html

в основном установите taskExecutor свойство на SchedulerFactoryBean для использования org.springframework.scheduling.commonj. WorkManager TaskExecutor, который будет использовать контейнер, управлял потоками.

3
ответ дан 8 December 2019 в 05:24
поделиться

Вы можете проверить приведенную ниже ссылку JIRA на кварце по этому поводу.

http://jira.opensymphony.com/browse/QUARTZ-708

Здесь есть необходимая реализация WebSphereThreadPool, которую можно использовать с изменениями в quartz.properties, как указано, для удовлетворения ваших требований. Надеюсь, это поможет.

С уважением, Шива

1
ответ дан 8 December 2019 в 05:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: