Согласно документации save_model , путь также может быть объектом h5py.File
, и в документации по h5py есть пример файлов в памяти . ]
Просто предположение, но я мог бы быть то, вследствие того, что Реактивный двигатель показывает кэш считывания и ленивые записи:
Как реализовать многопользовательские пользовательские счетчики в Jet 4.0 и ADO 2.1
"Microsoft Jet имеет кэш считывания, который обновляется каждый PageTimeout миллисекунды (значение по умолчанию составляет 5 000 мс = 5 секунд). Это также имеет механизм ленивой записи, который воздействует на отдельный поток к основной обработке и таким образом пишет изменения в диске асинхронно. Эти два механизма помогают выполнению повышения, но в определенных ситуациях, которые требуют высокого параллелизма, они могут создать проблемы".
Статья предлагает использовать метод RefreshCache Струи, и установить Струйный OLEDB:Transaction Передают Режим 1 миллисекунде (одно преимущество для ADO по ДАО для Струи состоит в том, что можно изменить эту установку, не изменяя значение в реестре).
P.S. необходимо полагать, что база данных Access редактирования (.mdb) упоминает 'Струю' вместо этого и использование 'Струйного' тега также, иначе Вы получите комментарий от определенного ТАК пользователь, который привередлив об этих вещах :)
Эта статья Microsoft Knowledge Base объясняет, как сделать это.
Вот выборка с примером кода. Код использует два соединения от одного процесса, таким образом, необходимо вытянуть часть чтения во второй процесс.
Обратите внимание, что JRO.JetEngine включен путем добавления ссылки на Microsoft Jet И Объекты Репликации 2.1 Библиотеки к проекту VB.
Sub SyncReadDemo()
Dim conn1 As New ADODB.Connection
Dim conn2 As New ADODB.Connection
Dim rs As New ADODB.recordset
Dim JRO As New JRO.JetEngine
Dim strConnect As String
Dim i As Long
' Set up our connection string (requires a database named c:\db1.mdb).
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\db1.mdb"
' Open connection 1 and drop and re-create test table.
conn1.CursorLocation = adUseServer
conn1.Open strConnect
On Error Resume Next
conn1.Execute "drop table tmpTest", , _
adExecuteNoRecords + adCmdText
On Error GoTo 0
conn1.Execute "create table tmpTest (id long)", , _
adExecuteNoRecords + adCmdText
' Close connection 1 to flush the creation of table tmpTest.
conn1.Close
' Now open connection 1 and connection 2.
conn1.Open strConnect
conn2.Open strConnect
' Insert 10 records using connection 1.
' Note we must perform all writes inside of a transaction.
conn1.BeginTrans
For i = 1 To 10
conn1.Execute "insert into tmpTest (id) values (1)", , _
adExecuteNoRecords + adCmdText
Next i
conn1.CommitTrans
' Refresh cache for reader connection.
JRO.RefreshCache conn2
Set rs = conn2.Execute("select * from tmpTest", , adCmdText)
' Count records in our table (should be 10).
i = 0
While Not rs.EOF
i = i + 1
rs.MoveNext
Wend
rs.Close
MsgBox "Read " & i & " records using different connections."
conn1.Close
conn2.Close
End Sub
Так как первый процесс является единственным процессом с MDB, открытым, это может быть немного лениво об обратной записи материала в файл. Даже после того, как Вы заканчивают процесс может быть задержка, пока ОС записывает выдающиеся страницы обратно, и это может произойти после того, как процесс сигнализировал, что это завершилось.
Моя рекомендация была бы, прекратить использовать Доступ, использовать Экспресс SQL Server 2008 года вместо этого.