helpisu

package module
v0.11.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 22, 2022 License: MIT Imports: 12 Imported by: 1

README

helpisu

CI Pipeline CodeQL Analysis Go Reference

ISUCON helper library for Go

Documentation

Overview

Package helpisu - ISUCON helper library for Go

Index

Constants

This section is empty.

Variables

View Source
var ErrInvalidType = errors.New("StringInt.Scan: invalid type")

ErrInvalidType 不正な型が渡されたときに返すエラー

Functions

func NewSonicSerializer added in v0.6.0

func NewSonicSerializer() echo.JSONSerializer

NewSonicSerializer sonicを用いたecho用Jsonシリアライザを作成

func NewULID added in v0.10.0

func NewULID() string

NewULID 新たなULIDを作成

26文字のstring形式で返します

func NewUUID added in v0.10.0

func NewUUID() string

NewUUID 新たなUUIDを作成

36文字のstring形式で返します

func ResetAllCache added in v0.10.0

func ResetAllCache()

ResetAllCache `NewCache()`で生成した全てのキャッシュをリセット

func WaitDBStartUp added in v0.8.0

func WaitDBStartUp(db *sql.DB)

WaitDBStartUp DBの起動を待機

Types

type Cache

type Cache[K comparable, V any] struct {
	// contains filtered or unexported fields
}

Cache ジェネリックで、スレッドセーフなマップキャッシュ

sync.Mapのジェネリックなラッパーです

func NewCache

func NewCache[K comparable, V any]() *Cache[K, V]

NewCache 新たなCacheを作成

func (*Cache[K, V]) Delete

func (c *Cache[K, V]) Delete(key K)

Delete 指定したKeyのキャッシュを削除

func (*Cache[K, V]) ForEach added in v0.10.0

func (c *Cache[K, V]) ForEach(f func(key K, value V) error) (err error)

ForEach キャッシュの全ての要素に対して処理を行う

func (*Cache[K, V]) Get

func (c *Cache[K, V]) Get(key K) (value V, ok bool)

Get 指定したKeyのキャッシュを取得

func (*Cache[K, V]) GetAndDelete added in v0.7.0

func (c *Cache[K, V]) GetAndDelete(key K) (value V, ok bool)

GetAndDelete 指定したKeyのキャッシュを取得して削除

func (*Cache[K, V]) Reset

func (c *Cache[K, V]) Reset()

Reset 全てのキャッシュを削除

func (*Cache[K, V]) Set

func (c *Cache[K, V]) Set(key K, value V)

Set 指定したKey-Valueのセットをキャッシュに入れる

type DBDisconnectDetector added in v0.8.0

type DBDisconnectDetector struct {
	// contains filtered or unexported fields
}

DBDisconnectDetector DBから切断されるとアプリを強制終了する検出器

func NewDBDisconnectDetector added in v0.8.0

func NewDBDisconnectDetector(durationSec, pauseSec int) *DBDisconnectDetector

NewDBDisconnectDetector 新たなDBDisconnectDetectorを作成

durationSecは接続確認の実行間隔をs単位で指定して下さい
pauseSecは`Pause()`してから検出を再開するまでの時間をs単位で指定して下さい

func (*DBDisconnectDetector) Pause added in v0.9.0

func (d *DBDisconnectDetector) Pause()

Pause DBからの切断の検出を一時的に停止

検出は`pauseSec`秒後に再開します

func (*DBDisconnectDetector) RegisterDB added in v0.10.0

func (d *DBDisconnectDetector) RegisterDB(db *sql.DB)

RegisterDB DBをDBDisconnectDetectorに登録

func (*DBDisconnectDetector) Reset added in v0.8.0

func (d *DBDisconnectDetector) Reset()

Reset 確認タイミングをリセット

func (*DBDisconnectDetector) Start added in v0.8.0

func (d *DBDisconnectDetector) Start()

Start DBからの切断の検出を開始

必ずGoroutineとして実行して下さい

func (*DBDisconnectDetector) Stop added in v0.8.0

func (d *DBDisconnectDetector) Stop()

Stop DBからの切断の検出を完全に停止

type StringInt added in v0.2.0

type StringInt struct {
	// contains filtered or unexported fields
}

StringInt DBにはint型に、jsonにはstring型として認識される特殊な型

PrimaryKeyをランダムなstringからauto incrementなintに変換する時などに使います
中身の値を使いたいときは、Value()メソッドを使用して下さい

func NewStringInt added in v0.2.0

func NewStringInt(value int) StringInt

NewStringInt 新たなStringIntを作成

func (StringInt) MarshalJSON added in v0.2.0

func (si StringInt) MarshalJSON() ([]byte, error)

MarshalJSON json.Marshalerの実装

func (*StringInt) Scan added in v0.2.0

func (si *StringInt) Scan(value any) error

Scan sql.Scannerの実装

func (*StringInt) UnmarshalJSON added in v0.2.0

func (si *StringInt) UnmarshalJSON(data []byte) error

UnmarshalJSON json.Unmarshalerの実装

func (StringInt) Value added in v0.2.0

func (si StringInt) Value() int

Value sql.Valuerの実装

type Ticker added in v0.4.0

type Ticker struct {
	// contains filtered or unexported fields
}

Ticker 一定時間ごとに関数を実行するタイマー

func NewTicker added in v0.4.0

func NewTicker(durationMS int, callback func()) *Ticker

NewTicker 新たなTickerを作成

durationMSはタイマーの実行間隔をms単位で指定して下さい

func (*Ticker) Reset added in v0.4.0

func (t *Ticker) Reset()

Reset タイマーをリセット

func (*Ticker) Start added in v0.4.0

func (t *Ticker) Start()

Start タイマーを開始

必ずGoroutineとして実行して下さい

func (*Ticker) Stop added in v0.4.0

func (t *Ticker) Stop()

Stop タイマーを停止

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL