Skip to content

Instantly share code, notes, and snippets.

View baybatu's full-sized avatar
🏠
Working from home

Batuhan Bayrakci baybatu

🏠
Working from home
View GitHub Profile
@baybatu
baybatu / analytic-functions.md
Last active February 3, 2019 14:35
SQL'de ROW_NUMBER, RANK ve DENSE_RANK farklarını anlatan güzel bir örnek
@baybatu
baybatu / PaginationThroughHttpHeadersResponseAdvice.java
Last active August 5, 2021 06:59
Managing pagination through HTTP headers on Spring Boot. `PageResponseAdvice` intercepts responses in `PageResponse` type and puts pagination related fields into HTTP response headers.
@ControllerAdvice
public class PageResponseAdvice implements ResponseBodyAdvice<Object> {
@Override
public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
return PageResponse.class.isAssignableFrom(returnType.getParameterType());
}
@Override
public Object beforeBodyWrite(Object body,
@baybatu
baybatu / rabbitmq-delay-message-consume.md
Last active October 13, 2022 10:14
RabbitMQ: mesajı geciktirerek tüketmek

RabbitMQ: Mesajı Geciktirerek Tüketmek

  • delay-exchange: Geciktirilecek mesajın bırakıldığı exchange.
  • delay-queue: delay-exchange'e bağlı. Herhangi bir tüketicisi olmamalı.
  • ana-exchange: Geciktirilmeden tüketilmek istenen mesajların bırakılabileceği exchange.
  • ana-queue: ana-exchange'e bağlı kuyruk. Tüketicisi var.

delay-queue şu parametrelerle oluşturulur:

  • x-dead-letter-exchange: -- boş
  • x-message-ttl: 3000 -- mesajın bekletileceği milisaniye
@baybatu
baybatu / es-delete-indices-by-wildcard.sh
Created December 28, 2018 07:23
Delete indices by wildcard pattern in Elasticsearch #elasticsearch
for index_name in `curl -XGET "$ES_HOST/products_*" | jq -r 'keys[]'`; do
curl -XDELETE "$ES_HOST/$index_name"
done
@baybatu
baybatu / ThreadPoolTaskExecutorWithMdcPropagation.java
Last active December 20, 2018 11:00
Propogate MDC context into newly created thread pool
public class ThreadPoolTaskExecutorWithMdcPropagation extends ThreadPoolExecutor {
private static final Logger LOGGER = LoggerFactory.getLogger(ThreadPoolTaskExecutorWithMdcPropagation.class);
private final Map<String, String> parentMdcContextMap;
public ThreadPoolTaskExecutorWithMdcPropagation(int corePoolSize, int maxPoolSize, long keepAliveTime, TimeUnit keepAliveTimeUnit) {
super(corePoolSize, maxPoolSize, keepAliveTime, keepAliveTimeUnit, new LinkedBlockingQueue<>());
parentMdcContextMap = MDC.getCopyOfContextMap();
}
@baybatu
baybatu / json-format-using-vim-with-python.md
Last active February 8, 2019 05:06
JSON format in Vim using Python json.tool module
@baybatu
baybatu / datagrip-database-connections.md
Last active December 2, 2022 17:55
Import & Export database connection properties in DataGrip

on macOS

default folder in /Users/USERNAME/Library/Preferences/DataGrip2018.1/projects contains database connection properties.

DataGrip2018.1 states your DataGrip version

@baybatu
baybatu / pip-install-by-specific-python.sh
Created October 16, 2018 10:51
Install pip package for specified Python version
pyenv shell 3.6.4 # Shell specific Python version
/usr/local/var/pyenv/versions/3.6.4/bin/python -m pip install -U PACKAGE_NAME
@baybatu
baybatu / realtime-tracking-stdout-line-count.sh
Last active October 11, 2018 07:56
Tracking line count of a docker container's stdout in realtime
docker logs -f --since 2s $(docker ps -qa --filter "name=CONTAINER_NAME") | pv -l -c > /dev/null
@baybatu
baybatu / last-records-on-elasticsearch.sh
Created September 14, 2018 07:15
Get records indexed in last 15 minutes on Elasticsearch
curl -XGET "http://ES_CLUSTER/_search" -H 'Content-Type: application/json' -d'
{
"query": {
"range" : {
"@timestamp" : {
"gte" : "now-15m",
"lt" : "now"
}
}
}