Zobrazení data v PostgreSQL v určité časové zóně

K zobrazení času v určité časové zóně se v PostegreSQL používá at time zone + zóna.

select created_at at time zone 'CEST' as cest, created_at at time zone 'GMT' as gmt, created_at at time zone 'EST' as est from table_name;

+--------------------------+--------------------------+--------------------------+
|cest                      |gmt                       |est                       |
+--------------------------+--------------------------+--------------------------+
|2021-05-06 13:13:44.360009|2021-05-06 11:13:44.360009|2021-05-06 06:13:44.360009|
|2021-05-06 13:13:43.676227|2021-05-06 11:13:43.676227|2021-05-06 06:13:43.676227|
|2021-05-06 13:13:43.578580|2021-05-06 11:13:43.578580|2021-05-06 06:13:43.578580|
+--------------------------+--------------------------+--------------------------+

Zdroj: popsql.com/learn-sql/postgresql/how-to-convert-utc-to-local-time-zone-in-postgresql

Webflux a BlockHound

BlockHound je java agent (software nahraný JVM před zavoláním main metody), který způsobí to, že pokud v rámci neblokujícího vlákna (vlákno, které nemá volat blokující volání) zavoláte metodu, která blokuje vlákno, vyhodí se chyba.

Závislost

implementation("io.projectreactor.tools:blockhound:1.0.4.RELEASE")

Pokud si chceme BlockHound přizpůsobit, vytvoříme třídu, která implementuje BlockHoundIntegration

Číst dál

Posílání chyb do Sentry

Sentry je primárně zaměřeno na chyby. Je to místo, kam budou všechny pády systému reportovány. Na sentry si musíte vytvořit účet a nastavit projekt tak, aby chyby posílal do sentry a mít je na jednom místě.

build.gradle

implementation("io.sentry:sentry-spring-boot-starter:4.3.0")

application.yml
Tato data dostanete při registraci do sentry.

sentry:
    dsn: https://xxx@yyy.ingest.sentry.io/zzz

Kód, který pošle chybu do sentry.

try {
    throw Exception("This is a v1 test.")
} catch (e: Exception) {
    Sentry.captureException(e)
}

Je možné přidat tento kód do GlobalErrorHandleru.

@ControllerAdvice
@RestController
class GlobalErrorHandler {
    private val logger: Logger = LoggerFactory.getLogger(javaClass)

    @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
    @ExceptionHandler
    fun handle(e: Exception) {
        logger.error("Error", e)
        Sentry.captureException(e)
    }
}

Přidání uvozovek na začátek a konec každého řádku v souboru pomocí awk

Awk příkaz v příkazové řádce Linuxu, který umožňuje modifikovat soubor. Pro přidání prefixu na začátek souboru se použije příkaz

awk '{print "PREFIX"$0}' FILE

Pro přidání suffixu příkaz

awk '{print $0"SUFFIX"}' FILE

Pokud potřebujete v rámci textu přidat jednoduché uvozovky, je třeba použít '\''.

Jako příklad použiji tento soubor s názvem pokus.

lksajfs
asklfa
ksfawoowp
2526827628276262
koishf
a

sjfoisfj
osfo

Následujícím příkazem vytvořím nový soubor s názvem pokus-modified, který bude mít na začátku každé řádky jednoduchou uvozovku a na konci jednoduchou uvozovku a čárku.

awk '{print "'\''"$0}' pokus | awk '{print $0"'\'',"}' > pokus-modified

Takto bude vypadat modifikovaný soubor.

'lksajfs',
'asklfa',
'ksfawoowp',
'2526827628276262',
'koishf',
'a',
'',
'sjfoisfj',
'osfo',

Zdroje: