мировые часы командной строки?

Похоже, что инициируется транзакция distrubutrd, abd, которая не поддерживается в ядре .net.

Так как вы обращаетесь к нескольким менеджерам ресурсов (ваша база данных и база данных hangfire), транзакция пытается увеличить транзакцию, которая будет распределена.

Вы можете вывести _backgroundJobClient.Enqueue() Hangfire из области видимости, и таким образом эскалация не произойдет.

Вам нужно будет найти другой способ убедиться, что оба действия выполнены (обновление базы данных, постановка очереди на зависание)

РЕДАКТИРОВАТЬ : поскольку у вас не может быть транзакции, вы должны настроить свои услуги на обрабатывать возможные ситуации отказа. например: Служба учетных записей будет:

  1. Сохранять созданное, используемое в БД

  2. , а затем вызывать Enqueue Hangfire

  3. [ 114]

    Записать тот факт, что задание hangfire было создано в той же базе данных пользователя.

  4. служба пользователя должна опросить базу данных, чтобы увидеть, были ли созданы пользователи, но уведомление не было зарегистрировано.

Другие микросервисы должны иметь возможность обрабатывать дубликаты уведомлений.

Таким образом, если пользователь был создан, но уведомление не было отправлено, ваша служба будет повторно отправлена ​​(4).

Принимающие службы будут игнорировать повторяющийся запрос, если сбой происходит между (2) и (3)

8
задан Adam Matan 11 September 2009 в 09:55
поделиться

4 ответа

У меня есть этот сценарий оболочки Bourne:

#!/bin/sh

PT=`env TZ=US/Pacific date`
CT=`env TZ=US/Central date`
AT=`env TZ=Australia/Melbourne date`

echo "Santa Clara    $PT"
echo "Central        $CT"
echo "Melbourne      $AT"
17
ответ дан 5 December 2019 в 05:57
поделиться

Никогда не думал о нем, но не ужасно трудно сделать.

#!/bin/sh
# Command-line world clock

: ${WORLDCLOCK_ZONES:=$HOME/etc/worldclock.zones}
: ${WORLDCLOCK_FORMAT:='+%Y-%m-%d %H:%M:%S %Z'}

while read zone
do echo $zone '!' $(TZ=$zone date "$WORLDCLOCK_FORMAT")
done < $WORLDCLOCK_ZONES |
awk -F '!' '{ printf "%-20s  %s\n", $1, $2;}'

Учитывая входной файл:

US/Pacific
Europe/London
Europe/Paris
Asia/Kolkatta
Africa/Johannesburg
Asia/Tokyo
Asia/Shanghai

Я получил вывод:

US/Pacific             2008-12-15 15:58:57 PST
Europe/London          2008-12-15 23:58:57 GMT
Europe/Paris           2008-12-16 00:58:57 CET
Asia/Kolkatta          2008-12-15 23:58:57 GMT
Africa/Johannesburg    2008-12-16 01:58:57 SAST
Asia/Tokyo             2008-12-16 08:58:57 JST
Asia/Shanghai          2008-12-16 07:58:57 CST

Мне повезло, что это взяло меньше, чем секунда для выполнения и не пересекло 1 вторую границу.

(Я не заметил, что Kolkatta перестал работать и принял значение по умолчанию к GMT. Моя система все еще имеет Азию/Калькутту как запись для Индии.)

6
ответ дан 5 December 2019 в 05:57
поделиться

Я использую это, которое является в основном тем же как другими предложениями, кроме него фильтры на определенных зонах, которые Вы хотите видеть:

#!/bin/sh

# Show date and time in other time zones

search=$1

zoneinfo=/usr/share/zoneinfo/posix/
format='%a %F %T'

find -L $zoneinfo -type f \
    | grep -i "$search" \
    | while read z
      do
          d=$(TZ=$z date +"$format")
          printf "%-34s %23s\n" ${z#$zoneinfo} "$d"
      done

Демонстрационный вывод:

$ /usr/local/bin/wdate bang
Africa/Bangui                      Fri 2009-03-06 11:04:24
Asia/Bangkok                       Fri 2009-03-06 17:04:24
2
ответ дан 5 December 2019 в 05:57
поделиться

Если Вы действительно все еще хотите записать это в Python, рассмотрите Pytz:

http://pytz.sourceforge.net/

Их первая полоса показывает Вам много простых способов выполнить то, что Вы ищете.

Тем не менее я уверен, провели ли Вы несколько минут на Google, Вы нашли бы тонны сценариев, некоторые, которые даже запускаются, графические программы для *отклоняют. Первый список результатов для "мировых часов Python", кажется, предлагает это одно.

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

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