從PR #114開始,您可以使用頂層配置選項default_commit_options
。默認情況下,捆綁包將使用與ODM相同的值,即{safe: true}
。下面是支持的選項的一個簡單示例:
doctrine_mongodb:
default_commit_options:
safe: 2 # boolean or positive integer for replication
fsync: false # boolean
timeout: 10 # integer >= -1
查看DI擴展的Configuration類和單元測試以獲取更多信息。
對於舊版本的DoctrineMongoDBBundle,Configuration類在服務容器中註冊,這意味着您可以自己實現它。這樣做的兩個選擇是在您自己的包中創建一個編譯器傳遞,並將方法調用添加到服務定義上,或者如果過於複雜,請在運行時代碼中訪問服務實例,並直接調用setDefaultCommitOptions()
。
感興趣的代碼在DoctrineMongoDBExtension和loadDocumentManager()
方法。從那裏,您可以看到爲每個配置實例分配的服務ID(每個DocumentManager存在一個)。我相信你也可以通過getConfiguration()
方法獲取DM的配置。
不知道如何做到這一點,但對所有操作使用fsync會使事情變得非常緩慢。請重新考慮非常有選擇性地使用fsync。 – Derick