Web services 申请者简单列表webapp
我正在创建一个web应用程序,其中列出了申请人及其在等待名单上的位置 我们需要能够在此列表中添加新的申请人,并从列表中删除申请人。名单上的申请者不到1万人 细节:Web services 申请者简单列表webapp,web-services,web,go,architecture,Web Services,Web,Go,Architecture,我正在创建一个web应用程序,其中列出了申请人及其在等待名单上的位置 我们需要能够在此列表中添加新的申请人,并从列表中删除申请人。名单上的申请者不到1万人 细节: package main import ( "log" "sync" "time" "github.com/boltdb/bolt" ) type applicant struct { FirstName string LastName string StudentID
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()
}
- 我计划在Golang编写应用程序
- 列表需要是安全的,如果程序关闭,它应该是可恢复的
- 该应用程序应包含每个申请人的以下数据:姓名、学生ID、职位
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()
}
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()
}
模型代码:
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()
}
如果使用文件,则可以使用来阻止并发写入
否则数据库就可以了。例如,可能是合适的。这是一种纯粹的使用程序运行的方式。如果使用文件,可以使用阻止并发写入
否则数据库就可以了。例如,可能是合适的。这是一种纯粹的运行程序。有很多方法。您可以使用文件并使用Go互斥锁或系统锁对其进行保护。您可以通过内存映射文件来提高性能。您可以使用BoltDB,这是一款非常安全的软件,可以提供所需的机器,并且可以在过程中工作。如果你写的很少,大部分是读的,那么常量DB看起来也很有趣。 但是,经典的sqldb有一些优点
- 您可以使用第三方存储来存储数据,并在需要时轻松迁移
- 您可以从第三方应用程序或纯SQL访问数据 请求
- 您可以分别考虑数据模式和代码逻辑
- 您可以使用第三方存储来存储数据,并在需要时轻松迁移
- 您可以从第三方应用程序或纯SQL访问数据 请求
- 您可以分别考虑数据模式和代码逻辑
- 有很多方法。您可以使用文件并使用Go互斥锁或系统锁对其进行保护。您可以通过内存映射文件来提高性能。您可以使用BoltDB,这是一款非常安全的软件,可以提供所需的机器,并且可以在过程中工作。如果你写的很少,大部分是读的,那么常量DB看起来也很有趣。
但是,经典的sqldb有一些优点
prioryList
结构,还是直接在数据库中修改数据?BoltDB不把数据保存在内存中吗?如果是这样,如果程序退出,数据就会丢失,对吗?BoltDB将数据存储在磁盘上。我用一些代码更新了我的问题。你怎么认为?将互斥体放在列表中而不是单个申请人中是否正确?如果使用BoltDB,则不需要互斥体。螺栓内部处理锁定和解锁。如果你自己使用文件,你只需要一个互斥锁。我应该像上面那样使用prioryList
struct,还是直接在数据库中修改数据?