Для ясности я создал решение следующим образом
public static T GetDatabaseServiceFromConfig<T>(string databaseId)
{
object system = null;
switch (databaseId)
{
case DatabaseIds.<DbName>:
system = new <DbName>Service(new <DbName>ConfigSettings());
break;
// More cases
default:
// System not found
throw new ArgumentOutOfRangeException(databaseId);
}
if (!(system is T))
{
throw new NotImplementedException("Database type was found and created but does not implement interface: " + typeof(T));
}
// Safe cast
return (T)system;
}
Реализация:
var service = DatabaseServiceFactory.GetDatabaseServiceFromConfig<IProductService>(DatabaseIds.<DbName>);
// object now has access to functions on IProductService
service.CreateProduct(/*Params*/);
Временно решил эту проблему, вставив этот код в crontab:
*/3 * * * * test "`sudo find /var/lib/mysql/mydatabase/onetable.idb -mmin -4`" && /etc/myscript.sh
Это не постоянное решение, потому что я хочу выполнить этот скрипт на основе триггера.
Со страницы man inotify.7:
The inotify API does not report file accesses and modifications that
may occur because of mmap(2), msync(2), and munmap(2).
Эти процедуры часто используются в реализациях баз данных.