roundhouse-x 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.travis.yml +16 -0
- data/3.0-Upgrade.md +70 -0
- data/Changes.md +1127 -0
- data/Gemfile +27 -0
- data/LICENSE +7 -0
- data/README.md +52 -0
- data/Rakefile +9 -0
- data/bin/roundhouse +19 -0
- data/bin/roundhousectl +93 -0
- data/lib/generators/roundhouse/templates/worker.rb.erb +9 -0
- data/lib/generators/roundhouse/templates/worker_spec.rb.erb +6 -0
- data/lib/generators/roundhouse/templates/worker_test.rb.erb +8 -0
- data/lib/generators/roundhouse/worker_generator.rb +49 -0
- data/lib/roundhouse/actor.rb +39 -0
- data/lib/roundhouse/api.rb +859 -0
- data/lib/roundhouse/cli.rb +396 -0
- data/lib/roundhouse/client.rb +210 -0
- data/lib/roundhouse/core_ext.rb +105 -0
- data/lib/roundhouse/exception_handler.rb +30 -0
- data/lib/roundhouse/fetch.rb +154 -0
- data/lib/roundhouse/launcher.rb +98 -0
- data/lib/roundhouse/logging.rb +104 -0
- data/lib/roundhouse/manager.rb +236 -0
- data/lib/roundhouse/middleware/chain.rb +149 -0
- data/lib/roundhouse/middleware/i18n.rb +41 -0
- data/lib/roundhouse/middleware/server/active_record.rb +13 -0
- data/lib/roundhouse/middleware/server/logging.rb +40 -0
- data/lib/roundhouse/middleware/server/retry_jobs.rb +206 -0
- data/lib/roundhouse/monitor.rb +124 -0
- data/lib/roundhouse/paginator.rb +42 -0
- data/lib/roundhouse/processor.rb +159 -0
- data/lib/roundhouse/rails.rb +24 -0
- data/lib/roundhouse/redis_connection.rb +77 -0
- data/lib/roundhouse/scheduled.rb +115 -0
- data/lib/roundhouse/testing/inline.rb +28 -0
- data/lib/roundhouse/testing.rb +193 -0
- data/lib/roundhouse/util.rb +68 -0
- data/lib/roundhouse/version.rb +3 -0
- data/lib/roundhouse/web.rb +264 -0
- data/lib/roundhouse/web_helpers.rb +249 -0
- data/lib/roundhouse/worker.rb +90 -0
- data/lib/roundhouse.rb +177 -0
- data/roundhouse.gemspec +27 -0
- data/test/config.yml +9 -0
- data/test/env_based_config.yml +11 -0
- data/test/fake_env.rb +0 -0
- data/test/fixtures/en.yml +2 -0
- data/test/helper.rb +49 -0
- data/test/test_api.rb +521 -0
- data/test/test_cli.rb +389 -0
- data/test/test_client.rb +294 -0
- data/test/test_exception_handler.rb +55 -0
- data/test/test_fetch.rb +206 -0
- data/test/test_logging.rb +34 -0
- data/test/test_manager.rb +169 -0
- data/test/test_middleware.rb +160 -0
- data/test/test_monitor.rb +258 -0
- data/test/test_processor.rb +176 -0
- data/test/test_rails.rb +23 -0
- data/test/test_redis_connection.rb +127 -0
- data/test/test_retry.rb +390 -0
- data/test/test_roundhouse.rb +87 -0
- data/test/test_scheduled.rb +120 -0
- data/test/test_scheduling.rb +75 -0
- data/test/test_testing.rb +78 -0
- data/test/test_testing_fake.rb +240 -0
- data/test/test_testing_inline.rb +65 -0
- data/test/test_util.rb +18 -0
- data/test/test_web.rb +605 -0
- data/test/test_web_helpers.rb +52 -0
- data/web/assets/images/bootstrap/glyphicons-halflings-white.png +0 -0
- data/web/assets/images/bootstrap/glyphicons-halflings.png +0 -0
- data/web/assets/images/logo.png +0 -0
- data/web/assets/images/status/active.png +0 -0
- data/web/assets/images/status/idle.png +0 -0
- data/web/assets/images/status-sd8051fd480.png +0 -0
- data/web/assets/javascripts/application.js +83 -0
- data/web/assets/javascripts/dashboard.js +300 -0
- data/web/assets/javascripts/locales/README.md +27 -0
- data/web/assets/javascripts/locales/jquery.timeago.ar.js +96 -0
- data/web/assets/javascripts/locales/jquery.timeago.bg.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.bs.js +49 -0
- data/web/assets/javascripts/locales/jquery.timeago.ca.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.cs.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.cy.js +20 -0
- data/web/assets/javascripts/locales/jquery.timeago.da.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.de.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.el.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.en-short.js +20 -0
- data/web/assets/javascripts/locales/jquery.timeago.en.js +20 -0
- data/web/assets/javascripts/locales/jquery.timeago.es.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.et.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.fa.js +22 -0
- data/web/assets/javascripts/locales/jquery.timeago.fi.js +28 -0
- data/web/assets/javascripts/locales/jquery.timeago.fr-short.js +16 -0
- data/web/assets/javascripts/locales/jquery.timeago.fr.js +17 -0
- data/web/assets/javascripts/locales/jquery.timeago.he.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.hr.js +49 -0
- data/web/assets/javascripts/locales/jquery.timeago.hu.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.hy.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.id.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.it.js +16 -0
- data/web/assets/javascripts/locales/jquery.timeago.ja.js +19 -0
- data/web/assets/javascripts/locales/jquery.timeago.ko.js +17 -0
- data/web/assets/javascripts/locales/jquery.timeago.lt.js +20 -0
- data/web/assets/javascripts/locales/jquery.timeago.mk.js +20 -0
- data/web/assets/javascripts/locales/jquery.timeago.nl.js +20 -0
- data/web/assets/javascripts/locales/jquery.timeago.no.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.pl.js +31 -0
- data/web/assets/javascripts/locales/jquery.timeago.pt-br.js +16 -0
- data/web/assets/javascripts/locales/jquery.timeago.pt.js +16 -0
- data/web/assets/javascripts/locales/jquery.timeago.ro.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.rs.js +49 -0
- data/web/assets/javascripts/locales/jquery.timeago.ru.js +34 -0
- data/web/assets/javascripts/locales/jquery.timeago.sk.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.sl.js +44 -0
- data/web/assets/javascripts/locales/jquery.timeago.sv.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.th.js +20 -0
- data/web/assets/javascripts/locales/jquery.timeago.tr.js +16 -0
- data/web/assets/javascripts/locales/jquery.timeago.uk.js +34 -0
- data/web/assets/javascripts/locales/jquery.timeago.uz.js +19 -0
- data/web/assets/javascripts/locales/jquery.timeago.zh-cn.js +20 -0
- data/web/assets/javascripts/locales/jquery.timeago.zh-tw.js +20 -0
- data/web/assets/stylesheets/application.css +746 -0
- data/web/assets/stylesheets/bootstrap.css +9 -0
- data/web/locales/cs.yml +68 -0
- data/web/locales/da.yml +68 -0
- data/web/locales/de.yml +69 -0
- data/web/locales/el.yml +68 -0
- data/web/locales/en.yml +77 -0
- data/web/locales/es.yml +69 -0
- data/web/locales/fr.yml +69 -0
- data/web/locales/hi.yml +75 -0
- data/web/locales/it.yml +69 -0
- data/web/locales/ja.yml +69 -0
- data/web/locales/ko.yml +68 -0
- data/web/locales/nl.yml +68 -0
- data/web/locales/no.yml +69 -0
- data/web/locales/pl.yml +59 -0
- data/web/locales/pt-br.yml +68 -0
- data/web/locales/pt.yml +67 -0
- data/web/locales/ru.yml +75 -0
- data/web/locales/sv.yml +68 -0
- data/web/locales/ta.yml +75 -0
- data/web/locales/zh-cn.yml +68 -0
- data/web/locales/zh-tw.yml +68 -0
- data/web/views/_footer.erb +22 -0
- data/web/views/_job_info.erb +84 -0
- data/web/views/_nav.erb +66 -0
- data/web/views/_paging.erb +23 -0
- data/web/views/_poll_js.erb +5 -0
- data/web/views/_poll_link.erb +7 -0
- data/web/views/_status.erb +4 -0
- data/web/views/_summary.erb +40 -0
- data/web/views/busy.erb +90 -0
- data/web/views/dashboard.erb +75 -0
- data/web/views/dead.erb +34 -0
- data/web/views/layout.erb +31 -0
- data/web/views/morgue.erb +71 -0
- data/web/views/queue.erb +45 -0
- data/web/views/queues.erb +27 -0
- data/web/views/retries.erb +74 -0
- data/web/views/retry.erb +34 -0
- data/web/views/scheduled.erb +54 -0
- data/web/views/scheduled_job_info.erb +8 -0
- metadata +404 -0
data/web/locales/pt.yml
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
# elements like %{queue} are variables and should not be translated
|
2
|
+
pt:
|
3
|
+
Dashboard: Dashboard
|
4
|
+
Status: Estado
|
5
|
+
Time: Tempo
|
6
|
+
Namespace: Namespace
|
7
|
+
Realtime: Tempo real
|
8
|
+
History: Histórico
|
9
|
+
Busy: Ocupado
|
10
|
+
Processed: Processados
|
11
|
+
Failed: Falhados
|
12
|
+
Scheduled: Agendados
|
13
|
+
Retries: Tentativas
|
14
|
+
Enqueued: Em espera
|
15
|
+
Worker: Worker
|
16
|
+
LivePoll: Live Poll
|
17
|
+
StopPolling: Desactivar Live Poll
|
18
|
+
Queue: Fila
|
19
|
+
Class: Classe
|
20
|
+
Job: Tarefa
|
21
|
+
Arguments: Argumentos
|
22
|
+
Started: Iniciados
|
23
|
+
ShowAll: Mostrar todos
|
24
|
+
CurrentMessagesInQueue: Mensagens na fila <span class='title'>%{queue}</span>
|
25
|
+
Delete: Apagar
|
26
|
+
AddToQueue: Adicionar à fila
|
27
|
+
AreYouSureDeleteJob: Tem a certeza que deseja eliminar esta tarefa?
|
28
|
+
AreYouSureDeleteQueue: Tem a certeza que deseja eliminar a fila %{queue}?
|
29
|
+
Queues: Filas
|
30
|
+
Size: Tamanho
|
31
|
+
Actions: Acções
|
32
|
+
NextRetry: Próxima Tentativa
|
33
|
+
RetryCount: Tentativas efectuadas
|
34
|
+
RetryNow: Tentar novamente
|
35
|
+
LastRetry: Última Tentativa
|
36
|
+
OriginallyFailed: Falhou inicialmente
|
37
|
+
AreYouSure: Tem a certeza?
|
38
|
+
DeleteAll: Eliminar todos
|
39
|
+
RetryAll: Tentar tudo novamente
|
40
|
+
NoRetriesFound: Não foram encontradas tentativas
|
41
|
+
Error: Erro
|
42
|
+
ErrorClass: Classe de Erro
|
43
|
+
ErrorMessage: Mensagem de erro
|
44
|
+
ErrorBacktrace: Backtrace do Erro
|
45
|
+
GoBack: ← Voltar
|
46
|
+
NoScheduledFound: Não foram encontradas tarefas agendadas
|
47
|
+
When: Quando
|
48
|
+
ScheduledJobs: Tarefas agendadas
|
49
|
+
idle: livre
|
50
|
+
active: activo
|
51
|
+
Version: Versão
|
52
|
+
Connections: Conexões
|
53
|
+
MemoryUsage: Utilização de Memória
|
54
|
+
PeakMemoryUsage: Pico de utilização de memória
|
55
|
+
Uptime: Uptime (em dias)
|
56
|
+
OneWeek: 1 semana
|
57
|
+
OneMonth: 1 mês
|
58
|
+
ThreeMonths: 3 meses
|
59
|
+
SixMonths: 6 meses
|
60
|
+
Failures: Falhas
|
61
|
+
DeadJobs: Tarefas mortas
|
62
|
+
NoDeadJobsFound: Não foram encontradas tarefas mortas
|
63
|
+
Dead: Morto
|
64
|
+
Processes: Processos
|
65
|
+
Thread: Thread
|
66
|
+
Threads: Threads
|
67
|
+
Jobs: Tarefas
|
data/web/locales/ru.yml
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
ru:
|
2
|
+
Dashboard: Панель управления
|
3
|
+
Status: Статус
|
4
|
+
Time: Время
|
5
|
+
Namespace: Пространство имен
|
6
|
+
Realtime: Сейчас
|
7
|
+
History: История
|
8
|
+
Busy: Занят
|
9
|
+
Processed: Обработано
|
10
|
+
Failed: Провалено
|
11
|
+
Scheduled: Запланировано
|
12
|
+
Retries: Попытки
|
13
|
+
Enqueued: В очереди
|
14
|
+
Worker: Обработчик
|
15
|
+
LivePoll: Постоянный опрос
|
16
|
+
StopPolling: Остановить опрос
|
17
|
+
Queue: Очередь
|
18
|
+
Class: Класс
|
19
|
+
Job: Задача
|
20
|
+
Arguments: Аргументы
|
21
|
+
Extras: Дополнительно
|
22
|
+
Started: Запущено
|
23
|
+
ShowAll: Показать все
|
24
|
+
CurrentMessagesInQueue: Текущие задачи в очереди <span class='title'>%{queue}</span>
|
25
|
+
Delete: Удалить
|
26
|
+
AddToQueue: Добавить в очередь
|
27
|
+
AreYouSureDeleteJob: Вы уверены, что хотите удалить эту задачу?
|
28
|
+
AreYouSureDeleteQueue: Вы уверены, что хотите удалить очередь %{queue}?
|
29
|
+
Queues: Очереди
|
30
|
+
Size: Размер
|
31
|
+
Actions: Действия
|
32
|
+
NextRetry: Следующая попытка
|
33
|
+
RetryCount: Кол-во попыток
|
34
|
+
RetryNow: Повторить сейчас
|
35
|
+
Kill: Убиваем
|
36
|
+
LastRetry: Последняя попытка
|
37
|
+
OriginallyFailed: Первый провал
|
38
|
+
AreYouSure: Вы уверены?
|
39
|
+
DeleteAll: Удалить все
|
40
|
+
RetryAll: Повторить все
|
41
|
+
NoRetriesFound: Нет попыток
|
42
|
+
Error: Ошибка
|
43
|
+
ErrorClass: Класс ошибки
|
44
|
+
ErrorMessage: Сообщение об ошибке
|
45
|
+
ErrorBacktrace: Трассировка ошибки
|
46
|
+
GoBack: ← Назад
|
47
|
+
NoScheduledFound: Нет запланированных задач
|
48
|
+
When: Когда
|
49
|
+
ScheduledJobs: Запланированные задачи
|
50
|
+
idle: отдыхает
|
51
|
+
active: активен
|
52
|
+
Version: Версия
|
53
|
+
Connections: Соединения
|
54
|
+
MemoryUsage: Использование памяти
|
55
|
+
PeakMemoryUsage: Максимальный расход памяти
|
56
|
+
Uptime: Дня(ей) бесперебойной работы
|
57
|
+
OneWeek: 1 неделя
|
58
|
+
OneMonth: 1 месяц
|
59
|
+
ThreeMonths: 3 месяца
|
60
|
+
SixMonths: 6 месяцев
|
61
|
+
Failures: Провалы
|
62
|
+
DeadJobs: Убитые задачи
|
63
|
+
NoDeadJobsFound: Нет убитых задач
|
64
|
+
Dead: Убито
|
65
|
+
Processes: Процессы
|
66
|
+
Thread: Поток
|
67
|
+
Threads: Потоки
|
68
|
+
Jobs: Задачи
|
69
|
+
Paused: Приостановлено
|
70
|
+
Stop: Остановить
|
71
|
+
Quiet: Отдыхать
|
72
|
+
StopAll: Остановить все
|
73
|
+
QuietAll: Отдыхать всем
|
74
|
+
PollingInterval: Интервал опроса
|
75
|
+
Plugins: Плагины
|
data/web/locales/sv.yml
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
# elements like %{queue} are variables and should not be translated
|
2
|
+
sv: # <---- change this to your locale code
|
3
|
+
Dashboard: Panel
|
4
|
+
Status: Status
|
5
|
+
Time: Tid
|
6
|
+
Namespace: Namnrymd
|
7
|
+
Realtime: Realtid
|
8
|
+
History: Historik
|
9
|
+
Busy: Upptagen
|
10
|
+
Processed: Processerad
|
11
|
+
Failed: Misslyckad
|
12
|
+
Scheduled: Schemalagd
|
13
|
+
Retries: Försök
|
14
|
+
Enqueued: Köad
|
15
|
+
Worker: Worker
|
16
|
+
LivePoll: Live poll
|
17
|
+
StopPolling: Stoppa polling
|
18
|
+
Queue: Kö
|
19
|
+
Class: Klass
|
20
|
+
Job: Jobb
|
21
|
+
Arguments: Argument
|
22
|
+
Extras: Extra
|
23
|
+
Started: Startad
|
24
|
+
ShowAll: Visa alla
|
25
|
+
CurrentMessagesInQueue: Jobb i <span class='title'>%{queue}</span>
|
26
|
+
Delete: Ta bort
|
27
|
+
AddToQueue: Lägg till i kö
|
28
|
+
AreYouSureDeleteJob: Är du säker på att du vill ta bort detta jobb?
|
29
|
+
AreYouSureDeleteQueue: Är du säker på att du vill ta bort kön %{queue}?
|
30
|
+
Queues: Köer
|
31
|
+
Size: Storlek
|
32
|
+
Actions: Åtgärder
|
33
|
+
NextRetry: Nästa försök
|
34
|
+
RetryCount: Antal försök
|
35
|
+
RetryNow: Försök nu
|
36
|
+
LastRetry: Senaste försök
|
37
|
+
OriginallyFailed: Misslyckades ursprungligen
|
38
|
+
AreYouSure: Är du säker?
|
39
|
+
DeleteAll: Ta bort alla
|
40
|
+
RetryAll: Försök alla igen
|
41
|
+
NoRetriesFound: Inga försök hittades
|
42
|
+
Error: Fel
|
43
|
+
ErrorClass: Felklass
|
44
|
+
ErrorMessage: Felmeddelande
|
45
|
+
ErrorBacktrace: Backtrace för fel
|
46
|
+
GoBack: ← Bakåt
|
47
|
+
NoScheduledFound: Inga schemalagda jobb hittades
|
48
|
+
When: När
|
49
|
+
ScheduledJobs: Schemalagda jobb
|
50
|
+
idle: avvaktande
|
51
|
+
active: aktiv
|
52
|
+
Version: Version
|
53
|
+
Connections: Anslutningar
|
54
|
+
MemoryUsage: Minnesanvändning
|
55
|
+
PeakMemoryUsage: Minnesanvändning (peak)
|
56
|
+
Uptime: Upptid (dagar)
|
57
|
+
OneWeek: 1 vecka
|
58
|
+
OneMonth: 1 månad
|
59
|
+
ThreeMonths: 3 månader
|
60
|
+
SixMonths: 6 månader
|
61
|
+
Failures: Failures
|
62
|
+
DeadJobs: Döda jobb
|
63
|
+
NoDeadJobsFound: Inga döda jobb hittades
|
64
|
+
Dead: Död
|
65
|
+
Processes: Processer
|
66
|
+
Thread: Tråd
|
67
|
+
Threads: Trådar
|
68
|
+
Jobs: Jobb
|
data/web/locales/ta.yml
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
# elements like %{queue} are variables and should not be translated
|
2
|
+
ta: # <---- change this to your locale code
|
3
|
+
Dashboard: டாஷ்போர்டு
|
4
|
+
Status: நிலைமை
|
5
|
+
Time: நேரம்
|
6
|
+
Namespace: பெயர்வெளி
|
7
|
+
Realtime: நேரலை
|
8
|
+
History: வரலாறு
|
9
|
+
Busy: பணிமிகுதி
|
10
|
+
Processed: நிறையுற்றது
|
11
|
+
Failed: தோல்வி
|
12
|
+
Scheduled: திட்டமிடப்பட்ட
|
13
|
+
Retries: மீண்டும் முயற்சிக்க,
|
14
|
+
Enqueued: வரிசைப்படுத்தப்பட்டவை
|
15
|
+
Worker: பணியாளர்
|
16
|
+
LivePoll: நேரடி கணிப்பு
|
17
|
+
StopPolling: நிறுத்து வாக்குப்பதிவு
|
18
|
+
Queue: வரிசை
|
19
|
+
Class: வகுப்பு
|
20
|
+
Job: வேலை
|
21
|
+
Arguments: வாதங்கள்,
|
22
|
+
Extras: உபரி
|
23
|
+
Started: தொடங்குதல்
|
24
|
+
ShowAll: அனைத்து காட்டு
|
25
|
+
CurrentMessagesInQueue: தற்போதைய வேலைகள் <span class='title'>%{queue}</span>
|
26
|
+
Delete: நீக்கு
|
27
|
+
AddToQueue: வரிசையில் சேர்
|
28
|
+
AreYouSureDeleteJob: நீ இந்த வேலையை நீக்க வேண்டும் என்று உறுதியாக இருக்கிறீர்களா?
|
29
|
+
AreYouSureDeleteQueue: நீங்கள் %{queue} வரிசையில் நீக்க வேண்டும் என்பதில் உறுதியாக இருக்கிறீர்களா?
|
30
|
+
Queues: வரிசை
|
31
|
+
Size: அளவு
|
32
|
+
Actions: செயல்கள்
|
33
|
+
NextRetry: அடுத்த, மீண்டும் முயற்சிக்கவும்
|
34
|
+
RetryCount: கணிப்பீடு, மீண்டும் முயற்சிக்கவும்
|
35
|
+
RetryNow: இப்போது மீண்டும் முயற்சி செய்க
|
36
|
+
Kill: கொல்
|
37
|
+
LastRetry: கடைசியாக, மீண்டும் முயற்சிக்கவும்
|
38
|
+
OriginallyFailed: முதலில் தோல்வி
|
39
|
+
AreYouSure: நீங்கள் உறுதியாக இருக்கிறீர்களா?
|
40
|
+
DeleteAll: அனைத்து நீக்கு
|
41
|
+
RetryAll: அனைத்து, மீண்டும் முயற்சிக்கவும்
|
42
|
+
NoRetriesFound: இல்லை மீண்டும் காணப்படவில்லை
|
43
|
+
Error: பிழை
|
44
|
+
ErrorClass: பிழை வகுப்பு
|
45
|
+
ErrorMessage: பிழை செய்தி
|
46
|
+
ErrorBacktrace: பிழை பின்தேடுலை
|
47
|
+
GoBack: பின்புறம்
|
48
|
+
NoScheduledFound: திட்டமிட்ட வேலைகள் காணப்படவில்லை
|
49
|
+
When: எப்பொழுது?
|
50
|
+
ScheduledJobs: திட்டமிட்ட வேலைகள்
|
51
|
+
idle: முடங்கு நேரம்
|
52
|
+
active: செயலில்
|
53
|
+
Version: பதிப்பு
|
54
|
+
Connections: இணைப்புகள்
|
55
|
+
MemoryUsage: நினைவக பயன்பாடு
|
56
|
+
PeakMemoryUsage: உச்ச நினைவக பயன்பாடு
|
57
|
+
Uptime: இயக்க நேரம் (நாட்கள்)
|
58
|
+
OneWeek: 1 வாரம்
|
59
|
+
OneMonth: 1 மாதம்
|
60
|
+
ThreeMonths: 3 மாதங்கள்
|
61
|
+
SixMonths: 6 மாதங்கள்
|
62
|
+
Failures: தோல்விகள்
|
63
|
+
DeadJobs: டெட் வேலைகள்
|
64
|
+
NoDeadJobsFound: இறந்த வேலை எதுவும் இல்லை
|
65
|
+
Dead: இறந்துபோன
|
66
|
+
Processes: செயல்முறைகள்
|
67
|
+
Thread: நூல்
|
68
|
+
Threads: நூல்கள்
|
69
|
+
Jobs: வேலை வாய்ப்புகள்
|
70
|
+
Paused: தற்காலிக பணிநிறுத்தம்
|
71
|
+
Stop: நிறுத்து
|
72
|
+
Quiet: அமைதியான
|
73
|
+
StopAll: நிறுத்து அனைத்து
|
74
|
+
QuietAll: அமைதியான அனைத்து
|
75
|
+
PollingInterval: வாக்குப்பதிவு இடைவெளி
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# elements like %{queue} are variables and should not be translated
|
2
|
+
zh-cn: # <---- change this to your locale code
|
3
|
+
Dashboard: 信息板
|
4
|
+
Status: 状态
|
5
|
+
Time: 时间
|
6
|
+
Namespace: 命名空间
|
7
|
+
Realtime: 实时
|
8
|
+
History: 历史记录
|
9
|
+
Busy: 执行中
|
10
|
+
Processed: 已处理
|
11
|
+
Failed: 已失败
|
12
|
+
Scheduled: 已计划
|
13
|
+
Retries: 重试
|
14
|
+
Enqueued: 已进入队列
|
15
|
+
Worker: 工人
|
16
|
+
LivePoll: 实时轮询
|
17
|
+
StopPolling: 停止轮询
|
18
|
+
Queue: 队列
|
19
|
+
Class: 类别
|
20
|
+
Job: 作业
|
21
|
+
Arguments: 参数
|
22
|
+
Extras: 额外的
|
23
|
+
Started: 已开始
|
24
|
+
ShowAll: 显示全部
|
25
|
+
CurrentMessagesInQueue: 目前在<span class='title'>%{queue}</span>的作业
|
26
|
+
Delete: 删除
|
27
|
+
AddToQueue: 添加至队列
|
28
|
+
AreYouSureDeleteJob: 你确定要删除这个作业么?
|
29
|
+
AreYouSureDeleteQueue: 你确定要删除%{queue}这个队列?
|
30
|
+
Queues: 队列
|
31
|
+
Size: 容量
|
32
|
+
Actions: 动作
|
33
|
+
NextRetry: 下次重试
|
34
|
+
RetryCount: 重试次數
|
35
|
+
RetryNow: 现在重试
|
36
|
+
LastRetry: 最后一次重试
|
37
|
+
OriginallyFailed: 原本已失败
|
38
|
+
AreYouSure: 你确定?
|
39
|
+
DeleteAll: 删除全部
|
40
|
+
RetryAll: 重试全部
|
41
|
+
NoRetriesFound: 沒有发现可重试
|
42
|
+
Error: 错误
|
43
|
+
ErrorClass: 错误类别
|
44
|
+
ErrorMessage: 错误消息
|
45
|
+
ErrorBacktrace: 错误的回调追踪
|
46
|
+
GoBack: ← 返回
|
47
|
+
NoScheduledFound: 沒有发现计划作业
|
48
|
+
When: 当
|
49
|
+
ScheduledJobs: 计划作业
|
50
|
+
idle: 闲置
|
51
|
+
active: 活动中
|
52
|
+
Version: 版本
|
53
|
+
Connections: 连接
|
54
|
+
MemoryUsage: 内存占用
|
55
|
+
PeakMemoryUsage: 内存占用峰值
|
56
|
+
Uptime: 上线时间 (天数)
|
57
|
+
OneWeek: 一周
|
58
|
+
OneMonth: 一个月
|
59
|
+
ThreeMonths: 三个月
|
60
|
+
SixMonths: 六个月
|
61
|
+
Failures: 失败
|
62
|
+
DeadJobs: 已停滞作业
|
63
|
+
NoDeadJobsFound: 沒有发现任何已停滞的作业
|
64
|
+
Dead: 已停滞
|
65
|
+
Processes: 处理中
|
66
|
+
Thread: 线程
|
67
|
+
Threads: 线程
|
68
|
+
Jobs: 作业
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# elements like %{queue} are variables and should not be translated
|
2
|
+
zh-tw: # <---- change this to your locale code
|
3
|
+
Dashboard: 資訊主頁
|
4
|
+
Status: 狀態
|
5
|
+
Time: 時間
|
6
|
+
Namespace: 命名空間
|
7
|
+
Realtime: 即時
|
8
|
+
History: 歷史資料
|
9
|
+
Busy: 忙碌
|
10
|
+
Processed: 已處理
|
11
|
+
Failed: 已失敗
|
12
|
+
Scheduled: 已排程
|
13
|
+
Retries: 重試
|
14
|
+
Enqueued: 已佇列
|
15
|
+
Worker: 工人
|
16
|
+
LivePoll: 即時輪詢
|
17
|
+
StopPolling: 停止輪詢
|
18
|
+
Queue: 佇列
|
19
|
+
Class: 類別
|
20
|
+
Job: 工作
|
21
|
+
Arguments: 參數
|
22
|
+
Extras: 額外的
|
23
|
+
Started: 已開始
|
24
|
+
ShowAll: 顯示全部
|
25
|
+
CurrentMessagesInQueue: 目前在<span class='title'>%{queue}</span>的工作
|
26
|
+
Delete: 刪除
|
27
|
+
AddToQueue: 增加至佇列
|
28
|
+
AreYouSureDeleteJob: 你確定要刪除這個工作嗎?
|
29
|
+
AreYouSureDeleteQueue: 你確定要刪除%{queue}這個佇列?
|
30
|
+
Queues: 佇列
|
31
|
+
Size: 容量
|
32
|
+
Actions: 動作
|
33
|
+
NextRetry: 下次重試
|
34
|
+
RetryCount: 重試次數
|
35
|
+
RetryNow: 馬上重試
|
36
|
+
LastRetry: 最後一次重試
|
37
|
+
OriginallyFailed: 原本已失敗
|
38
|
+
AreYouSure: 你確定?
|
39
|
+
DeleteAll: 刪除全部
|
40
|
+
RetryAll: 重試全部
|
41
|
+
NoRetriesFound: 沒有發現可重試
|
42
|
+
Error: 錯誤
|
43
|
+
ErrorClass: 錯誤類別
|
44
|
+
ErrorMessage: 錯誤訊息
|
45
|
+
ErrorBacktrace: 錯誤的回調追踨
|
46
|
+
GoBack: ← 返回
|
47
|
+
NoScheduledFound: 沒有發現已排程的工作
|
48
|
+
When: 當
|
49
|
+
ScheduledJobs: 已排程的工作
|
50
|
+
idle: 閒置
|
51
|
+
active: 活動中
|
52
|
+
Version: 版本
|
53
|
+
Connections: 連線
|
54
|
+
MemoryUsage: 記憶體使用量
|
55
|
+
PeakMemoryUsage: 尖峰記憶體使用量
|
56
|
+
Uptime: 上線時間 (天數)
|
57
|
+
OneWeek: 一週
|
58
|
+
OneMonth: 一個月
|
59
|
+
ThreeMonths: 三個月
|
60
|
+
SixMonths: 六個月
|
61
|
+
Failures: 失敗
|
62
|
+
DeadJobs: 停滯工作
|
63
|
+
NoDeadJobsFound: 沒有發現任何停滯的工作
|
64
|
+
Dead: 停滯
|
65
|
+
Processes: 處理中
|
66
|
+
Thread: 執行緒
|
67
|
+
Threads: 執行緒
|
68
|
+
Jobs: 工作
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<div class="navbar navbar-fixed-bottom navbar-inverse">
|
2
|
+
<div class="navbar-inner">
|
3
|
+
<div class="container text-center">
|
4
|
+
<ul class="nav">
|
5
|
+
<li>
|
6
|
+
<p class="navbar-text" style="color:white;"><%= product_version %></p>
|
7
|
+
</li>
|
8
|
+
<li>
|
9
|
+
<p class="navbar-text redis-url">Redis: <%= redis_connection %></p>
|
10
|
+
</li>
|
11
|
+
<li>
|
12
|
+
<p class="navbar-text"><%= t('Time') %>: <%= Time.now.utc.strftime('%H:%M:%S UTC') %></p>
|
13
|
+
</li>
|
14
|
+
<% if namespace %>
|
15
|
+
<li>
|
16
|
+
<p class="navbar-text redis-namespace"><%= t('Namespace') %>: <%= namespace %></p>
|
17
|
+
</li>
|
18
|
+
<% end %>
|
19
|
+
</ul>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
</div>
|
@@ -0,0 +1,84 @@
|
|
1
|
+
<header>
|
2
|
+
<h3><%= t('Job') %></h3>
|
3
|
+
</header>
|
4
|
+
|
5
|
+
<div class="table_container">
|
6
|
+
<table class="table table-bordered table-striped">
|
7
|
+
<tbody>
|
8
|
+
<tr>
|
9
|
+
<th><%= t('Queue') %></th>
|
10
|
+
<td>
|
11
|
+
<a href="<%= root_path %>queues/<%= job.queue_id %>"><%= job.queue_id %></a>
|
12
|
+
</td>
|
13
|
+
</tr>
|
14
|
+
<tr>
|
15
|
+
<th><%= t('Job') %></th>
|
16
|
+
<td>
|
17
|
+
<code><%= job.display_class %></code>
|
18
|
+
</td>
|
19
|
+
</tr>
|
20
|
+
<tr>
|
21
|
+
<th><%= t('Arguments') %></th>
|
22
|
+
<td>
|
23
|
+
<code class="code-wrap">
|
24
|
+
<!-- We don't want to truncate any job arguments when viewing a single job's status page -->
|
25
|
+
<div class="args-extended"><%= display_args(job.display_args, nil) %></div>
|
26
|
+
</code>
|
27
|
+
</td>
|
28
|
+
</tr>
|
29
|
+
<tr>
|
30
|
+
<th>JID</th>
|
31
|
+
<td>
|
32
|
+
<code><%= job.jid %></code>
|
33
|
+
</td>
|
34
|
+
</tr>
|
35
|
+
<tr>
|
36
|
+
<th><%= t('Enqueued') %></th>
|
37
|
+
<td><%= (enqueued_at = job.enqueued_at) ? relative_time(enqueued_at) : t('NotYetEnqueued') %></td>
|
38
|
+
</tr>
|
39
|
+
<% unless retry_extra_items(job).empty? %>
|
40
|
+
<tr>
|
41
|
+
<th><%= t('Extras') %></th>
|
42
|
+
<td>
|
43
|
+
<code>
|
44
|
+
<%= retry_extra_items(job).inspect %>
|
45
|
+
</code>
|
46
|
+
</td>
|
47
|
+
</tr>
|
48
|
+
<% end %>
|
49
|
+
<% if type == :retry %>
|
50
|
+
<% if job['retry_count'] && job['retry_count'] > 0 %>
|
51
|
+
<tr>
|
52
|
+
<th><%= t('RetryCount') %></th>
|
53
|
+
<td><%= job['retry_count'] %></td>
|
54
|
+
</tr>
|
55
|
+
<tr>
|
56
|
+
<th><%= t('LastRetry') %></th>
|
57
|
+
<td><%= relative_time(Time.at(job['retried_at'])) %></td>
|
58
|
+
</tr>
|
59
|
+
<% else %>
|
60
|
+
<tr>
|
61
|
+
<th><%= t('OriginallyFailed') %></th>
|
62
|
+
<td><%= relative_time(Time.at(job['failed_at'])) %></td>
|
63
|
+
</tr>
|
64
|
+
<% end %>
|
65
|
+
<tr>
|
66
|
+
<th><%= t('NextRetry') %></th>
|
67
|
+
<td><%= relative_time(job.at) %></td>
|
68
|
+
</tr>
|
69
|
+
<% end %>
|
70
|
+
<% if type == :scheduled %>
|
71
|
+
<tr>
|
72
|
+
<th><%= t('Scheduled') %></th>
|
73
|
+
<td><%= relative_time(job.at) %></td>
|
74
|
+
</tr>
|
75
|
+
<% end %>
|
76
|
+
<% if type == :dead %>
|
77
|
+
<tr>
|
78
|
+
<th><%= t('LastRetry') %></th>
|
79
|
+
<td><%= relative_time(job.at) %></td>
|
80
|
+
</tr>
|
81
|
+
<% end %>
|
82
|
+
</tbody>
|
83
|
+
</table>
|
84
|
+
</div>
|
data/web/views/_nav.erb
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
<div class="navbar navbar-default navbar-fixed-top">
|
2
|
+
<div class="container-fluid">
|
3
|
+
<div class="navbar-header" data-navbar="static">
|
4
|
+
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-menu">
|
5
|
+
<span class="icon-bar"></span>
|
6
|
+
<span class="icon-bar"></span>
|
7
|
+
<span class="icon-bar"></span>
|
8
|
+
</button>
|
9
|
+
<div class="navbar-toggle collapsed navbar-livereload">
|
10
|
+
<%= erb :_poll_link %>
|
11
|
+
<% if Roundhouse::Web.app_url %>
|
12
|
+
<a class="btn btn-inverse" href="<%= Roundhouse::Web.app_url %>">Back to App</a>
|
13
|
+
<% end %>
|
14
|
+
</div>
|
15
|
+
<a class="navbar-brand" href="<%= root_path %>">
|
16
|
+
<%= Roundhouse::NAME %>
|
17
|
+
<%= erb :_status %>
|
18
|
+
</a>
|
19
|
+
</div>
|
20
|
+
|
21
|
+
<div class="collapse navbar-collapse" id="navbar-menu">
|
22
|
+
<ul class="nav navbar-nav" data-navbar="static">
|
23
|
+
<% Roundhouse::Web.default_tabs.each do |title, url| %>
|
24
|
+
<% if url == '' %>
|
25
|
+
<li class="<%= current_path == url ? 'active' : '' %>">
|
26
|
+
<a href="<%= root_path %><%= url %>"><%= t(title) %></a>
|
27
|
+
</li>
|
28
|
+
<% else %>
|
29
|
+
<li class="<%= current_path.start_with?(url) ? 'active' : '' %>">
|
30
|
+
<a href="<%= root_path %><%= url %>"><%= t(title) %></a>
|
31
|
+
</li>
|
32
|
+
<% end %>
|
33
|
+
<% end %>
|
34
|
+
|
35
|
+
<li class="dropdown" data-navbar="dropdown">
|
36
|
+
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
|
37
|
+
<%= t('Plugins') %> <span class="caret"></span>
|
38
|
+
</a>
|
39
|
+
<ul class="dropdown-menu" role="menu">
|
40
|
+
<% Roundhouse::Web.custom_tabs.each do |title, url| %>
|
41
|
+
<li>
|
42
|
+
<a href="<%= root_path %><%= url %>"><%= t(title) %></a>
|
43
|
+
</li>
|
44
|
+
<% end %>
|
45
|
+
</ul>
|
46
|
+
</li>
|
47
|
+
|
48
|
+
<% Roundhouse::Web.custom_tabs.each do |title, url| %>
|
49
|
+
<li class="<%= current_path.start_with?(url) ? 'active' : '' %>" data-navbar="custom-tab">
|
50
|
+
<a href="<%= root_path %><%= url %>"><%= t(title) %></a>
|
51
|
+
</li>
|
52
|
+
<% end %>
|
53
|
+
</ul>
|
54
|
+
<ul class="nav navbar-nav navbar-right navbar-livereload" data-navbar="static">
|
55
|
+
<li>
|
56
|
+
<div class="poll-wrapper pull-right">
|
57
|
+
<%= erb :_poll_link %>
|
58
|
+
<% if Roundhouse::Web.app_url %>
|
59
|
+
<a class="btn btn-inverse" href="<%= Roundhouse::Web.app_url %>">Back to App</a>
|
60
|
+
<% end %>
|
61
|
+
</div>
|
62
|
+
</li>
|
63
|
+
</ul>
|
64
|
+
</div>
|
65
|
+
</div>
|
66
|
+
</div>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<% if @total_size > @count %>
|
2
|
+
<ul class="pagination pull-right">
|
3
|
+
<li class="<%= 'disabled' if @current_page == 1 %>">
|
4
|
+
<a href="<%= url %>?page=1">«</a>
|
5
|
+
</li>
|
6
|
+
<% if @current_page > 1 %>
|
7
|
+
<li>
|
8
|
+
<a href="<%= url %>?<%= qparams(page: @current_page - 1) %>"><%= @current_page - 1 %></a>
|
9
|
+
</li>
|
10
|
+
<% end %>
|
11
|
+
<li class="disabled">
|
12
|
+
<a href="<%= url %>?<%= qparams(page: @current_page) %>"><%= @current_page %></a>
|
13
|
+
</li>
|
14
|
+
<% if @total_size > @current_page * @count %>
|
15
|
+
<li>
|
16
|
+
<a href="<%= url %>?<%= qparams(page: @current_page + 1) %>"><%= @current_page + 1 %></a>
|
17
|
+
</li>
|
18
|
+
<% end %>
|
19
|
+
<li class="<%= 'disabled' if @total_size <= @current_page * @count %>">
|
20
|
+
<a href="<%= url %>?<%= qparams(page: (@total_size.to_f / @count).ceil) %>">»</a>
|
21
|
+
</li>
|
22
|
+
</ul>
|
23
|
+
<% end %>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<% if current_path != '' %>
|
2
|
+
<% if params[:poll] %>
|
3
|
+
<a id="live-poll" class="btn btn-primary active" href="<%= root_path + current_path %>"><%= t('StopPolling') %></a>
|
4
|
+
<% else %>
|
5
|
+
<a id="live-poll" class="btn btn-primary" href="<%= root_path + current_path %>?<%= qparams(poll: true) %>"><%= t('LivePoll') %></a>
|
6
|
+
<% end %>
|
7
|
+
<% end %>
|