Skip to content

Instantly share code, notes, and snippets.

View nagypet's full-sized avatar

Peter Nagy nagypet

View GitHub Profile
@nagypet
nagypet / CaseConverter.java
Last active February 23, 2021 08:04
Java converting from camel case to snake case
/**
* Camel case to underscores (examles CamelCase -> CAMEL_CASE)
* @param camel camel case
* @return underscores
*/
public static String camelCaseToUnderscores(String camel)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < camel.length(); i++)
{
@nagypet
nagypet / MicrometerMetricsService.java
Created October 26, 2021 15:11
MicrometerMetricsService
@Slf4j
public class MicrometerMetricsService {
private DualMetric metricValidTemplate;
// Not possible to convert to a local variable, it is not working!
private final RepositoryMetricProvider repositoryMetricProvider = new RepositoryMetricProvider();
private final List<HealthIndicator> healthIndicators;
@nagypet
nagypet / sse.md
Created November 2, 2022 11:06
Server Sent Event

SSE - Server sent event

Ez a technológia lehetővé teszi, hogy szerver oldalról tudjunk a frontendnek értesítéseket küldeni, ezzel a pollozás elkerülhetővé válik. Ez jelentős szerver terhelés és hálózati forgalom csökkenést eredményez, különösen nagyszámú kliens esetén.

A feladat az volt, hogy a megosztás események végrehajtása után az eredményről jelenjen meg a frontend-en egy toast. Mivel a megosztások aszinkron módon hajtódnak végre, a legjobb megoldás az, ha a backend értesíti a frontend-et a művelet eredményéről. Korábban a kilevelezés tab frissítése is pollozás által valósult meg, a tervem az volt, hogy a technológiát nem csak a toast megjelenítésére fogom használni, hanem a pollozást is kiváltom.

Itt van egy jó kis bevezető a témába.

Ezt a fajta kommunikációt is a kliens kezdeményezi egy SSE csatorna megnyitásával. Ilyenkor a backend egy SseEmitter objektumot ad vissza. Ezután a backend aszinkron eseményeket tud küldeni a csat

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}