Thread pools on the JVM should usually be divided into the following three categories:
- CPU-bound
- Blocking IO
- Non-blocking IO polling
Each of these categories has a different optimal configuration and usage pattern.
| #!/bin/bash | |
| mkdir -p out | |
| for img in `grep image $1| sed -e 's/^.*image\: //g'`; | |
| do | |
| cleanname=${img/\//-} | |
| tag=`docker images | grep $img | awk '{print $2}'` | |
| echo "Exporting image: $img, tag:$tag ($cleanname)..." | |
| docker save $img -o out/$cleanname.tar |
| 1. Получаем хэш-код коммита, к которому хотим вернуться. | |
| 2. Заходим в папку репозитория и пишем в консоль: | |
| $ git reset --hard a3775a5485af0af20375cedf46112db5f813322a | |
| $ git push --force |
| import cats._ | |
| import doobie._ | |
| import doobie.implicits._ | |
| import liquibase.Liquibase | |
| import liquibase.database.DatabaseFactory | |
| import liquibase.database.jvm.JdbcConnection | |
| import liquibase.resource.ClassLoaderResourceAccessor | |
| object LiquibaseMigration { | |
| def run[F[_]: Monad](xa: Transactor[F]): F[Unit] = |
| import Models._ | |
| import eu.timepit.refined.api._ | |
| import eu.timepit.refined.boolean.{And, Or} | |
| import eu.timepit.refined.collection._ | |
| import eu.timepit.refined.numeric._ | |
| import eu.timepit.refined.string._ | |
| import io.circe._ | |
| import io.circe.generic.semiauto._ | |
| import io.circe.parser._ | |
| import io.estatico.newtype.Coercible |
This tutorial good for Linux or Unix system at the end need to run bash script for connect
(Also it's have some technic for use in windows - Explained at client install section.)
VPS => virtual private server as wiregurd vpn server
net.ipv4.ip_forward=1 at /etc/sysctl.conf (or /etc/sysctl.d/99-sysctl.conf) and reboot your systemroot user in VPS