vweb: implement worker pool (#17298)

This commit is contained in:
Josh Montoya 2023-04-01 16:24:33 -07:00 committed by GitHub
parent 1471ba4678
commit 51ad565ed6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 177 additions and 62 deletions

View file

@ -3,9 +3,12 @@ module main
import vweb
import rand
const (
port = 8082
)
const port = 8082
struct State {
mut:
cnt int
}
struct App {
vweb.Context
@ -13,18 +16,10 @@ mut:
state shared State
}
struct State {
mut:
cnt int
}
pub fn (app App) before_request() {
println('[vweb] before_request: ${app.req.method} ${app.req.url}')
}
fn main() {
println('vweb example')
vweb.run(&App{}, port)
pub fn (app &App) before_request() {
$if trace_before_request ? {
eprintln('[vweb] before_request: ${app.req.method} ${app.req.url}')
}
}
['/users/:user']
@ -36,11 +31,17 @@ pub fn (mut app App) user_endpoint(user string) vweb.Result {
}
pub fn (mut app App) index() vweb.Result {
mut c := 0
lock app.state {
app.state.cnt++
c = app.state.cnt
//
$if trace_address_of_app_state_cnt ? {
dump(ptr_str(app.state.cnt))
}
}
show := true
hello := 'Hello world from vweb'
hello := 'Hello world from vweb, request number: ${c}'
numbers := [1, 2, 3]
return $vweb.html()
}
@ -58,3 +59,8 @@ pub fn (mut app App) cookie() vweb.Result {
pub fn (mut app App) post() vweb.Result {
return app.text('Post body: ${app.req.data}')
}
fn main() {
println('vweb example')
vweb.run(&App{}, port)
}