use INIT_SCHEDULE_ENTRY
parent
dc3e9b26c8
commit
7d1d0d56a3
2
HISTORY
2
HISTORY
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
Version 5.07 2015-09-05
|
Version 5.07 2015-09-13
|
||||||
* schedule task add the "second" field
|
* schedule task add the "second" field
|
||||||
* make.sh changed, you must upgrade libfastcommon to V1.21 or later
|
* make.sh changed, you must upgrade libfastcommon to V1.21 or later
|
||||||
* bug fixed: storage_disk_recovery.c skip the first file (binlog first line)
|
* bug fixed: storage_disk_recovery.c skip the first file (binlog first line)
|
||||||
|
|
|
||||||
|
|
@ -16,12 +16,13 @@ Source: http://perso.orange.fr/sebastien.godard/%{name}-%{version}.tar.gz
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
|
||||||
Requires: %__cp %__mv %__chmod %__grep %__mkdir %__install %__id
|
Requires: %__cp %__mv %__chmod %__grep %__mkdir %__install %__id
|
||||||
|
BuildRequires: libfastcommon-devel >= 1.0.21
|
||||||
|
|
||||||
%description
|
%description
|
||||||
This package provides tracker & storage of fastdfs
|
This package provides tracker & storage of fastdfs
|
||||||
|
|
||||||
%package -n %{FDFSServer}
|
%package -n %{FDFSServer}
|
||||||
Requires: libfastcommon >= 1.0.20
|
Requires: libfastcommon >= 1.0.21
|
||||||
Summary: fastdfs tracker & storage
|
Summary: fastdfs tracker & storage
|
||||||
|
|
||||||
%package -n %{FDFSTool}
|
%package -n %{FDFSTool}
|
||||||
|
|
|
||||||
|
|
@ -313,118 +313,76 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
scheduleArray.entries = scheduleEntries;
|
scheduleArray.entries = scheduleEntries;
|
||||||
|
scheduleArray.count = 0;
|
||||||
memset(scheduleEntries, 0, sizeof(scheduleEntries));
|
memset(scheduleEntries, 0, sizeof(scheduleEntries));
|
||||||
scheduleEntries[0].id = 1;
|
|
||||||
scheduleEntries[0].time_base.hour = TIME_NONE;
|
|
||||||
scheduleEntries[0].time_base.minute = TIME_NONE;
|
|
||||||
scheduleEntries[0].time_base.second = TIME_NONE;
|
|
||||||
scheduleEntries[0].interval = g_sync_log_buff_interval;
|
|
||||||
scheduleEntries[0].task_func = log_sync_func;
|
|
||||||
scheduleEntries[0].func_args = &g_log_context;
|
|
||||||
|
|
||||||
scheduleEntries[1].id = 2;
|
INIT_SCHEDULE_ENTRY(scheduleEntries[scheduleArray.count],
|
||||||
scheduleEntries[1].time_base.hour = TIME_NONE;
|
scheduleArray.count + 1, TIME_NONE, TIME_NONE, TIME_NONE,
|
||||||
scheduleEntries[1].time_base.minute = TIME_NONE;
|
g_sync_log_buff_interval, log_sync_func, &g_log_context);
|
||||||
scheduleEntries[1].time_base.second = TIME_NONE;
|
scheduleArray.count++;
|
||||||
scheduleEntries[1].interval = g_sync_binlog_buff_interval;
|
|
||||||
scheduleEntries[1].task_func = fdfs_binlog_sync_func;
|
|
||||||
scheduleEntries[1].func_args = NULL;
|
|
||||||
|
|
||||||
scheduleEntries[2].id = 3;
|
INIT_SCHEDULE_ENTRY(scheduleEntries[scheduleArray.count],
|
||||||
scheduleEntries[2].time_base.hour = TIME_NONE;
|
scheduleArray.count + 1, TIME_NONE, TIME_NONE, TIME_NONE,
|
||||||
scheduleEntries[2].time_base.minute = TIME_NONE;
|
g_sync_binlog_buff_interval, fdfs_binlog_sync_func, NULL);
|
||||||
scheduleEntries[2].time_base.second = TIME_NONE;
|
scheduleArray.count++;
|
||||||
scheduleEntries[2].interval = g_sync_stat_file_interval;
|
|
||||||
scheduleEntries[2].task_func = fdfs_stat_file_sync_func;
|
INIT_SCHEDULE_ENTRY(scheduleEntries[scheduleArray.count],
|
||||||
scheduleEntries[2].func_args = NULL;
|
scheduleArray.count + 1, TIME_NONE, TIME_NONE, TIME_NONE,
|
||||||
|
g_sync_stat_file_interval, fdfs_stat_file_sync_func, NULL);
|
||||||
|
scheduleArray.count++;
|
||||||
|
|
||||||
scheduleArray.count = 3;
|
|
||||||
if (g_if_use_trunk_file)
|
if (g_if_use_trunk_file)
|
||||||
{
|
{
|
||||||
scheduleEntries[scheduleArray.count].id = 4;
|
INIT_SCHEDULE_ENTRY(scheduleEntries[scheduleArray.count],
|
||||||
scheduleEntries[scheduleArray.count].time_base.hour = TIME_NONE;
|
scheduleArray.count + 1, TIME_NONE, TIME_NONE, TIME_NONE,
|
||||||
scheduleEntries[scheduleArray.count].time_base.minute=TIME_NONE;
|
1, trunk_binlog_sync_func, NULL);
|
||||||
scheduleEntries[scheduleArray.count].time_base.second=TIME_NONE;
|
|
||||||
scheduleEntries[scheduleArray.count].interval = 1;
|
|
||||||
scheduleEntries[scheduleArray.count].task_func = \
|
|
||||||
trunk_binlog_sync_func;
|
|
||||||
scheduleEntries[scheduleArray.count].func_args = NULL;
|
|
||||||
scheduleArray.count++;
|
scheduleArray.count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_use_access_log)
|
if (g_use_access_log)
|
||||||
{
|
{
|
||||||
scheduleEntries[scheduleArray.count].id = 5;
|
INIT_SCHEDULE_ENTRY(scheduleEntries[scheduleArray.count],
|
||||||
scheduleEntries[scheduleArray.count].time_base.hour = TIME_NONE;
|
scheduleArray.count + 1, TIME_NONE, TIME_NONE, TIME_NONE,
|
||||||
scheduleEntries[scheduleArray.count].time_base.minute=TIME_NONE;
|
g_sync_log_buff_interval, log_sync_func, &g_access_log_context);
|
||||||
scheduleEntries[scheduleArray.count].time_base.second=TIME_NONE;
|
|
||||||
scheduleEntries[scheduleArray.count].interval = \
|
|
||||||
g_sync_log_buff_interval;
|
|
||||||
scheduleEntries[scheduleArray.count].task_func = log_sync_func;
|
|
||||||
scheduleEntries[scheduleArray.count].func_args = \
|
|
||||||
&g_access_log_context;
|
|
||||||
scheduleArray.count++;
|
scheduleArray.count++;
|
||||||
|
|
||||||
if (g_rotate_access_log)
|
if (g_rotate_access_log)
|
||||||
{
|
{
|
||||||
scheduleEntries[scheduleArray.count].id = 6;
|
INIT_SCHEDULE_ENTRY_EX(scheduleEntries[scheduleArray.count],
|
||||||
scheduleEntries[scheduleArray.count].time_base = \
|
scheduleArray.count + 1, g_access_log_rotate_time,
|
||||||
g_access_log_rotate_time;
|
24 * 3600, log_notify_rotate, &g_access_log_context);
|
||||||
scheduleEntries[scheduleArray.count].interval = \
|
|
||||||
24 * 3600;
|
|
||||||
scheduleEntries[scheduleArray.count].task_func = \
|
|
||||||
log_notify_rotate;
|
|
||||||
scheduleEntries[scheduleArray.count].func_args = \
|
|
||||||
&g_access_log_context;
|
|
||||||
scheduleArray.count++;
|
scheduleArray.count++;
|
||||||
|
|
||||||
if (g_log_file_keep_days > 0)
|
if (g_log_file_keep_days > 0)
|
||||||
{
|
{
|
||||||
log_set_keep_days(&g_access_log_context,
|
log_set_keep_days(&g_access_log_context,
|
||||||
g_log_file_keep_days);
|
g_log_file_keep_days);
|
||||||
scheduleEntries[scheduleArray.count].id = 7;
|
|
||||||
scheduleEntries[scheduleArray.count].time_base.hour = 1;
|
INIT_SCHEDULE_ENTRY(scheduleEntries[scheduleArray.count],
|
||||||
scheduleEntries[scheduleArray.count].time_base.minute = 0;
|
scheduleArray.count + 1, 1, 0, 0, 24 * 3600,
|
||||||
scheduleEntries[scheduleArray.count].time_base.second = 0;
|
log_delete_old_files, &g_access_log_context);
|
||||||
scheduleEntries[scheduleArray.count].interval = 24 * 3600;
|
scheduleArray.count++;
|
||||||
scheduleEntries[scheduleArray.count].task_func =
|
}
|
||||||
log_delete_old_files;
|
}
|
||||||
scheduleEntries[scheduleArray.count].func_args =
|
|
||||||
&g_access_log_context;
|
|
||||||
scheduleArray.count++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_rotate_error_log)
|
if (g_rotate_error_log)
|
||||||
{
|
{
|
||||||
scheduleEntries[scheduleArray.count].id = 8;
|
INIT_SCHEDULE_ENTRY_EX(scheduleEntries[scheduleArray.count],
|
||||||
scheduleEntries[scheduleArray.count].time_base = \
|
scheduleArray.count + 1, g_error_log_rotate_time,
|
||||||
g_error_log_rotate_time;
|
24 * 3600, log_notify_rotate, &g_log_context);
|
||||||
scheduleEntries[scheduleArray.count].interval = \
|
|
||||||
24 * 3600;
|
|
||||||
scheduleEntries[scheduleArray.count].task_func = \
|
|
||||||
log_notify_rotate;
|
|
||||||
scheduleEntries[scheduleArray.count].func_args = \
|
|
||||||
&g_log_context;
|
|
||||||
scheduleArray.count++;
|
scheduleArray.count++;
|
||||||
|
|
||||||
if (g_log_file_keep_days > 0)
|
if (g_log_file_keep_days > 0)
|
||||||
{
|
{
|
||||||
log_set_keep_days(&g_log_context, g_log_file_keep_days);
|
log_set_keep_days(&g_log_context, g_log_file_keep_days);
|
||||||
scheduleEntries[scheduleArray.count].id = 9;
|
|
||||||
scheduleEntries[scheduleArray.count].time_base.hour = 1;
|
INIT_SCHEDULE_ENTRY(scheduleEntries[scheduleArray.count],
|
||||||
scheduleEntries[scheduleArray.count].time_base.minute = 0;
|
scheduleArray.count + 1, 1, 0, 0, 24 * 3600,
|
||||||
scheduleEntries[scheduleArray.count].time_base.second = 0;
|
log_delete_old_files, &g_log_context);
|
||||||
scheduleEntries[scheduleArray.count].interval = 24 * 3600;
|
scheduleArray.count++;
|
||||||
scheduleEntries[scheduleArray.count].task_func =
|
}
|
||||||
log_delete_old_files;
|
}
|
||||||
scheduleEntries[scheduleArray.count].func_args =
|
|
||||||
&g_log_context;
|
|
||||||
scheduleArray.count++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((result=sched_start(&scheduleArray, &schedule_tid, \
|
if ((result=sched_start(&scheduleArray, &schedule_tid, \
|
||||||
g_thread_stack_size, (bool * volatile)&g_continue_flag)) != 0)
|
g_thread_stack_size, (bool * volatile)&g_continue_flag)) != 0)
|
||||||
|
|
|
||||||
|
|
@ -313,60 +313,41 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
scheduleArray.entries = scheduleEntries;
|
scheduleArray.entries = scheduleEntries;
|
||||||
|
scheduleArray.count = 0;
|
||||||
memset(scheduleEntries, 0, sizeof(scheduleEntries));
|
memset(scheduleEntries, 0, sizeof(scheduleEntries));
|
||||||
scheduleEntries[0].id = 1;
|
|
||||||
scheduleEntries[0].time_base.hour = TIME_NONE;
|
|
||||||
scheduleEntries[0].time_base.minute = TIME_NONE;
|
|
||||||
scheduleEntries[0].time_base.second = TIME_NONE;
|
|
||||||
scheduleEntries[0].interval = g_sync_log_buff_interval;
|
|
||||||
scheduleEntries[0].task_func = log_sync_func;
|
|
||||||
scheduleEntries[0].func_args = &g_log_context;
|
|
||||||
|
|
||||||
scheduleEntries[1].id = 2;
|
INIT_SCHEDULE_ENTRY(scheduleEntries[scheduleArray.count],
|
||||||
scheduleEntries[1].time_base.hour = TIME_NONE;
|
scheduleArray.count + 1, TIME_NONE, TIME_NONE, TIME_NONE,
|
||||||
scheduleEntries[1].time_base.minute = TIME_NONE;
|
g_sync_log_buff_interval, log_sync_func, &g_log_context);
|
||||||
scheduleEntries[1].time_base.second = TIME_NONE;
|
scheduleArray.count++;
|
||||||
scheduleEntries[1].interval = g_check_active_interval;
|
|
||||||
scheduleEntries[1].task_func = tracker_mem_check_alive;
|
|
||||||
scheduleEntries[1].func_args = NULL;
|
|
||||||
|
|
||||||
scheduleEntries[2].id = 3;
|
INIT_SCHEDULE_ENTRY(scheduleEntries[scheduleArray.count],
|
||||||
scheduleEntries[2].time_base.hour = 0;
|
scheduleArray.count + 1, TIME_NONE, TIME_NONE, TIME_NONE,
|
||||||
scheduleEntries[2].time_base.minute = 0;
|
g_check_active_interval, tracker_mem_check_alive, NULL);
|
||||||
scheduleEntries[2].time_base.second = 0;
|
scheduleArray.count++;
|
||||||
scheduleEntries[2].interval = TRACKER_SYNC_STATUS_FILE_INTERVAL;
|
|
||||||
scheduleEntries[2].task_func = tracker_write_status_to_file;
|
|
||||||
scheduleEntries[2].func_args = NULL;
|
|
||||||
|
|
||||||
scheduleArray.count = 3;
|
INIT_SCHEDULE_ENTRY(scheduleEntries[scheduleArray.count],
|
||||||
|
scheduleArray.count + 1, 0, 0, 0,
|
||||||
|
TRACKER_SYNC_STATUS_FILE_INTERVAL,
|
||||||
|
tracker_write_status_to_file, NULL);
|
||||||
|
scheduleArray.count++;
|
||||||
|
|
||||||
if (g_rotate_error_log)
|
if (g_rotate_error_log)
|
||||||
{
|
{
|
||||||
scheduleEntries[scheduleArray.count].id = 4;
|
INIT_SCHEDULE_ENTRY_EX(scheduleEntries[scheduleArray.count],
|
||||||
scheduleEntries[scheduleArray.count].time_base = \
|
scheduleArray.count + 1, g_error_log_rotate_time,
|
||||||
g_error_log_rotate_time;
|
24 * 3600, log_notify_rotate, &g_log_context);
|
||||||
scheduleEntries[scheduleArray.count].interval = \
|
|
||||||
24 * 3600;
|
|
||||||
scheduleEntries[scheduleArray.count].task_func = \
|
|
||||||
log_notify_rotate;
|
|
||||||
scheduleEntries[scheduleArray.count].func_args = \
|
|
||||||
&g_log_context;
|
|
||||||
scheduleArray.count++;
|
scheduleArray.count++;
|
||||||
|
|
||||||
if (g_log_file_keep_days > 0)
|
if (g_log_file_keep_days > 0)
|
||||||
{
|
{
|
||||||
log_set_keep_days(&g_log_context, g_log_file_keep_days);
|
log_set_keep_days(&g_log_context, g_log_file_keep_days);
|
||||||
scheduleEntries[scheduleArray.count].id = 5;
|
|
||||||
scheduleEntries[scheduleArray.count].time_base.hour = 1;
|
INIT_SCHEDULE_ENTRY(scheduleEntries[scheduleArray.count],
|
||||||
scheduleEntries[scheduleArray.count].time_base.minute = 0;
|
scheduleArray.count + 1, 1, 0, 0, 24 * 3600,
|
||||||
scheduleEntries[scheduleArray.count].time_base.second = 0;
|
log_delete_old_files, &g_log_context);
|
||||||
scheduleEntries[scheduleArray.count].interval = 24 * 3600;
|
scheduleArray.count++;
|
||||||
scheduleEntries[scheduleArray.count].task_func =
|
}
|
||||||
log_delete_old_files;
|
|
||||||
scheduleEntries[scheduleArray.count].func_args =
|
|
||||||
&g_log_context;
|
|
||||||
scheduleArray.count++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((result=sched_start(&scheduleArray, &schedule_tid, \
|
if ((result=sched_start(&scheduleArray, &schedule_tid, \
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue