Documentation
¶
Overview ¶
Package sync provides functionality for the TDTP framework.
Index ¶
- type IncrementalConfig
- type StateManager
- func (sm *StateManager) GetAllStates() map[string]*SyncState
- func (sm *StateManager) GetState(tableName string) *SyncState
- func (sm *StateManager) GetStatePath() string
- func (sm *StateManager) Load() error
- func (sm *StateManager) Reset(tableName string) error
- func (sm *StateManager) ResetAll() error
- func (sm *StateManager) Save() error
- func (sm *StateManager) UpdateState(tableName, lastSyncValue string, recordsExported int64) error
- func (sm *StateManager) UpdateStateWithError(tableName string, err error) error
- type SyncMode
- type SyncState
- type TrackingStrategy
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type IncrementalConfig ¶
type IncrementalConfig struct {
// Enabled - включить инкрементальную синхронизацию
Enabled bool
// Mode - режим синхронизации
Mode SyncMode
// Strategy - стратегия отслеживания изменений
Strategy TrackingStrategy
// TrackingField - имя поля для отслеживания изменений
// Примеры: "updated_at", "modified_at", "id", "version"
TrackingField string
// StateFile - путь к файлу с состоянием синхронизации
// Если не указан, используется "./sync_state.json"
StateFile string
// BatchSize - размер batch для загрузки (0 = без ограничений)
BatchSize int
// InitialValue - начальное значение для первой синхронизации
// Если не указано, загружаются все записи
InitialValue string
// OrderBy - направление сортировки (ASC или DESC)
// По умолчанию ASC для правильной последовательности
OrderBy string
}
IncrementalConfig содержит конфигурацию для инкрементальной синхронизации
func DefaultIncrementalConfig ¶
func DefaultIncrementalConfig() IncrementalConfig
DefaultIncrementalConfig возвращает конфигурацию по умолчанию
func EnableIncrementalSync ¶
func EnableIncrementalSync(trackingField string) IncrementalConfig
EnableIncrementalSync создает конфигурацию для инкрементальной синхронизации
func (*IncrementalConfig) Validate ¶
func (c *IncrementalConfig) Validate() error
Validate проверяет корректность конфигурации
type StateManager ¶
type StateManager struct {
// contains filtered or unexported fields
}
StateManager управляет состоянием синхронизации для нескольких таблиц
func NewStateManager ¶
func NewStateManager(stateFile string, autoSave bool) (*StateManager, error)
NewStateManager создает новый менеджер состояния
func (*StateManager) GetAllStates ¶
func (sm *StateManager) GetAllStates() map[string]*SyncState
GetAllStates возвращает все состояния
func (*StateManager) GetState ¶
func (sm *StateManager) GetState(tableName string) *SyncState
GetState возвращает состояние для таблицы
func (*StateManager) GetStatePath ¶
func (sm *StateManager) GetStatePath() string
GetStatePath возвращает путь к файлу состояния
func (*StateManager) Reset ¶
func (sm *StateManager) Reset(tableName string) error
Reset сбрасывает состояние для таблицы (для полной ре-синхронизации)
func (*StateManager) ResetAll ¶
func (sm *StateManager) ResetAll() error
ResetAll сбрасывает все состояния
func (*StateManager) UpdateState ¶
func (sm *StateManager) UpdateState(tableName, lastSyncValue string, recordsExported int64) error
UpdateState обновляет состояние синхронизации
func (*StateManager) UpdateStateWithError ¶
func (sm *StateManager) UpdateStateWithError(tableName string, err error) error
UpdateStateWithError обновляет состояние с информацией об ошибке
type SyncState ¶
type SyncState struct {
TableName string `json:"table_name"`
LastSyncValue string `json:"last_sync_value"` // Последнее значение tracking поля (timestamp, id, etc.)
LastSyncTime time.Time `json:"last_sync_time"` // Время последней синхронизации
RecordsExported int64 `json:"records_exported"` // Количество экспортированных записей
LastError string `json:"last_error,omitempty"`
}
SyncState представляет состояние синхронизации для конкретной таблицы
type TrackingStrategy ¶
type TrackingStrategy string
TrackingStrategy определяет стратегию отслеживания изменений
const ( // TrackingTimestamp - отслеживание по timestamp полю (updated_at, modified_at, etc.) TrackingTimestamp TrackingStrategy = "timestamp" // TrackingSequence - отслеживание по auto-increment ID или sequence TrackingSequence TrackingStrategy = "sequence" // TrackingVersion - отслеживание по version field TrackingVersion TrackingStrategy = "version" )