在特定时间运行Neo4j查询

5
目前,我正在使用asp.net core和neo4j图形数据库制作应用程序。
我的应用程序提供了一个帐户注册系统,该系统向用户注册的电子邮件发送激活码,如果用户在24小时内没有点击激活链接,则该帐户将被删除。
我的问题是:我能否在neo4j图形数据库中编写触发器,在节点创建后24小时自动运行以检查其是否已验证并在未经验证的情况下删除它。
请问有人能帮助我吗?
谢谢 :)
2个回答

5
您可以使用 apoc 工作管理 :

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)

如何取消通过apoc.periodic.repea启动的定期任务? - Albert s
1
@Alberts 你可以使用 apoc.periodic.cancel 过程。 - stdob--
1
准确来说,@Alberts 取消周期性任务的查询应该是 CALL apoc.periodic.cancel('name'),其中 name 是重复任务的名称。 - Shyam Pratap Singh

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接