目前,我正在使用asp.net核心和neo4j图形数据库制作应用程序。
我的应用程序提供了一个帐户注册系统,该系统向用户注册的电子邮件发送激活码,24小时后,如果用户没有点击活动链接,该帐户将被删除。
我的问题是:我可以在neo4j图数据库中编写一个触发器,在创建一个节点后24小时后自动运行以检查它是否已经过验证,如果没有验证则删除它。
有人能帮帮我吗?
谢谢:)
答案 0 :(得分:3)
您可以使用apoc
job management:
1)创建用户:
CREATE (U:User {created_at: timestamp(), activated: false})
2)运行定期任务(每小时),其中包含未激活用户的列表,并检查激活时间,并在24小时内删除未激活帐户的人员:
CALL apoc.periodic.repeat('name',
'MATCH (U:User {activated: false})
WHERE timestamp() - U.created_at > 24 * 60 * 60 * 1000
DETACH DELETE U',
60 * 60)
答案 1 :(得分:1)
有多种解决方案可以解决这个问题:
第一个是名为neo4j-expire
的neo4j插件,您可以在节点上设置time-to-live
时间戳,该节点将在给定时间自动过期/删除:
https://github.com/graphaware/neo4j-expire
第二个解决方案是创建一个执行此检查的Cypher查询,并将其注册到neo4j-apoc
https://neo4j-contrib.github.io/neo4j-apoc-procedures/#_job_management