gpt4 book ai didi

web-services - 简单的申请人列表webapp

转载 作者:IT王子 更新时间:2023-10-29 02:23:28 25 4
gpt4 key购买 nike

我正在创建一个 Web 应用程序,其中列出申请人及其在候补名单中的位置。

我们需要能够将新申请人添加到此列表中并从列表中删除申请人。名单中的申请者不到 1 万人。

细节:

  • 我打算用 Golang 编写应用程序。

  • 列表需要安全,如果程序关闭,它应该是可恢复的。

  • 该应用应包含每个申请人的以下数据:姓名、学号、职位。

问题:

  1. 我如何保护列表(锁定?),以便在同时对列表进行两次更新时为两者正确更新?
  2. 我应该将数据保存在数据库中还是使用文件?

我需要你的帮助!

更新:

模型代码:

package main

import (
"log"
"sync"
"time"

"github.com/boltdb/bolt"
)

type applicant struct {
FirstName string
LastName string
StudentID string
Position int
}

type priorityList struct {
sync.Mutex
applicants []applicant
}

func (l *priorityList) newApplicant(fn string, ln string, sid string) error {

// add applicant to priorityList
return nil
}

func (l *priorityList) removeApplicant(sid string) error {
// remove applicant from priorityList
return nil
}

func (l *priorityList) editApplicant(sid string) error {
// edit applicant in priorityList
return nil
}

func main() {
// Database
db, err := bolt.Open("priorityList.db", 0600, &bolt.Options{Timeout: 1 * time.Second})
if err != nil {
log.Fatal(err)
}
defer db.Close()
}

最佳答案

如果你使用文件,你可以使用 Mutex阻止并发写入。

要不然数据库就好了。例如BoltDB可能是合适的。它是纯粹的 go 并与您的程序一起运行。

关于web-services - 简单的申请人列表webapp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35409157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com